From 7fe60435bce6595a9c58a9bfd8244d74b5320e96 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 15 Jan 2013 08:46:13 +0100 Subject: Import DirectFB141_2k11R3_beta5 --- Source/DirectFB/lib/direct/stream.h | 129 ++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100755 Source/DirectFB/lib/direct/stream.h (limited to 'Source/DirectFB/lib/direct/stream.h') diff --git a/Source/DirectFB/lib/direct/stream.h b/Source/DirectFB/lib/direct/stream.h new file mode 100755 index 0000000..6b77690 --- /dev/null +++ b/Source/DirectFB/lib/direct/stream.h @@ -0,0 +1,129 @@ +/* + (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org) + (c) Copyright 2000-2004 Convergence (integrated media) GmbH + + All rights reserved. + + Written by Denis Oliver Kropp , + Andreas Hundt , + Sven Neumann , + Ville Syrjälä and + Claudio Ciccani . + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#ifndef __DIRECT__STREAM_H__ +#define __DIRECT__STREAM_H__ + +#include +#include + +#include + +/* + * Create a stream wrapper. + * + * 'filename' can be a plain file name or one of the following: + * http://[:]/ + * unsv://[:]/ + * ftp://[:]/ + * rtsp://[:]/ + * tcp://: + * udp://: + * file:/ + * fd:/ + * stdin:/ + */ +DirectResult direct_stream_create ( const char *filename, + DirectStream **ret_stream ); + +/* + * Duplicate the stream (never fails). + */ +DirectStream *direct_stream_dup ( DirectStream *stream ); + +/* + * Return the file descriptor associated to the stream. + */ +int direct_stream_fileno ( DirectStream *stream ); + +/* + * True if stream is seekable. + */ +bool direct_stream_seekable( DirectStream *stream ); + +/* + * True if stream originates from a remote host. + */ +bool direct_stream_remote ( DirectStream *stream ); + +/* + * Get the mime description of the stream. + * Returns NULL if the information is not available. + */ +const char* direct_stream_mime ( DirectStream *stream ); + +/* + * Get stream length. + */ +unsigned int direct_stream_length ( DirectStream *stream ); + +/* + * Get stream position. + */ +unsigned int direct_stream_offset ( DirectStream *stream ); + +/* + * Wait for data to be available. + * If 'timeout' is NULL, the function blocks indefinitely. + * Set the 'timeout' to 0 to make the function return immediatly. + */ +DirectResult direct_stream_wait ( DirectStream *stream, + unsigned int length, + struct timeval *timeout ); + +/* + * Peek 'length' bytes of data at offset 'offset' from the stream. + */ +DirectResult direct_stream_peek ( DirectStream *stream, + unsigned int length, + int offset, + void *buf, + unsigned int *read_out ); + +/* + * Fetch 'length' bytes of data from the stream. + */ +DirectResult direct_stream_read ( DirectStream *stream, + unsigned int length, + void *buf, + unsigned int *read_out ); + +/* + * Seek to the specified absolute offset within the stream. + */ +DirectResult direct_stream_seek ( DirectStream *stream, + unsigned int offset ); + +/* + * Destroy the stream wrapper. + */ +void direct_stream_destroy ( DirectStream *stream ); + + +#endif /* __DIRECT__STREAM_H__ */ + -- cgit