Changeset 68 for libmpcdec/branches/zorg/include/mpcdec/reader.h
- Timestamp:
- 10/06/06 17:14:05 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libmpcdec/branches/zorg/include/mpcdec/reader.h
r7 r68 32 32 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 33 */ 34 /// \file reader.h 35 #ifndef _MPCDEC_READER_H_ 36 #define _MPCDEC_READER_H_ 37 #ifdef WIN32 38 #pragma once 39 #endif 34 40 35 /// \file reader.h 41 #include "mpc_types.h" 36 42 37 #ifndef _mpcdec_reader_h_ 38 #define _mpcdec_reader_h_ 43 #ifdef __cplusplus 44 extern "C" { 45 #endif 46 39 47 40 48 /// \brief Stream reader interface structure. … … 43 51 /// to feed it with raw data. Implement the five member functions to provide 44 52 /// a functional reader. 45 typedef struct mpc_reader_t { 53 typedef struct mpc_reader_t mpc_reader; 54 struct mpc_reader_t { 46 55 /// Reads size bytes of data into buffer at ptr. 47 mpc_int32_t (*read)( void *t, void *ptr, mpc_int32_t size);56 mpc_int32_t (*read)(mpc_reader *p_reader, void *ptr, mpc_int32_t size); 48 57 49 58 /// Seeks to byte position offset. 50 mpc_bool_t (*seek)( void *t, mpc_int32_t offset);59 mpc_bool_t (*seek)(mpc_reader *p_reader, mpc_int32_t offset); 51 60 52 61 /// Returns the current byte offset in the stream. 53 mpc_int32_t (*tell)( void *t);62 mpc_int32_t (*tell)(mpc_reader *p_reader); 54 63 55 64 /// Returns the total length of the source stream, in bytes. 56 mpc_int32_t (*get_size)( void *t);65 mpc_int32_t (*get_size)(mpc_reader *p_reader); 57 66 58 67 /// True if the stream is a seekable stream. 59 mpc_bool_t (*canseek)( void *t);68 mpc_bool_t (*canseek)(mpc_reader *p_reader); 60 69 61 70 /// Field that can be used to identify a particular instance of 62 71 /// reader or carry along data associated with that reader. 63 72 void *data; 64 65 } mpc_reader; 66 67 typedef struct mpc_reader_file_t { 68 mpc_reader reader; 69 70 FILE *file; 71 long file_size; 72 mpc_bool_t is_seekable; 73 } mpc_reader_file; 73 }; 74 74 75 75 /// Initializes reader with default stdio file reader implementation. Use 76 76 /// this if you're just reading from a plain file. 77 77 /// 78 /// \param r reader struct to initalize79 /// \param input input streamto attach to the reader80 void mpc_reader_setup_file_reader(mpc_reader_file *r, FILE *input);78 /// \param r p_reader handle to initialize 79 /// \param filename input filename to attach to the reader 80 mpc_status mpc_init_stdio_reader(mpc_reader *p_reader, char *filename); 81 81 82 #endif // _mpcdec_reader_h_ 82 /// Release reader with default stdio file reader implementation. 83 /// 84 /// \param r reader handle to release 85 void mpc_exit_stdio_reader(mpc_reader *p_reader); 86 87 #ifdef __cplusplus 88 } 89 #endif 90 #endif
Note: See TracChangeset
for help on using the changeset viewer.