diff options
| author | James Stembridge <jstembridge@users.sourceforge.net> | 2005-01-14 15:24:07 +0000 |
|---|---|---|
| committer | James Stembridge <jstembridge@users.sourceforge.net> | 2005-01-14 15:24:07 +0000 |
| commit | 05f670cb8cb0e0594d85ee50e8d126557cf3f8fe (patch) | |
| tree | 638bdc4737dab9c7c3724ab372459590a607e07b /src/libmusepack/musepack/reader.h | |
| parent | f03ebd99a8e85f09d1abcde8fcc4a6b3318d82ad (diff) | |
| download | xine-lib-05f670cb8cb0e0594d85ee50e8d126557cf3f8fe.tar.gz xine-lib-05f670cb8cb0e0594d85ee50e8d126557cf3f8fe.tar.bz2 | |
(Drum roll) Long awaited support for Musepack
CVS patchset: 7344
CVS date: 2005/01/14 15:24:07
Diffstat (limited to 'src/libmusepack/musepack/reader.h')
| -rw-r--r-- | src/libmusepack/musepack/reader.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/libmusepack/musepack/reader.h b/src/libmusepack/musepack/reader.h new file mode 100644 index 000000000..00aae830d --- /dev/null +++ b/src/libmusepack/musepack/reader.h @@ -0,0 +1,46 @@ +/// \file reader.h + +#ifndef _musepack_reader_h_ +#define _musepack_reader_h_ + +/// \brief Stream reader interface structure. +/// +/// This is the structure you must supply to the musepack decoding library +/// to feed it with raw data. Implement the five member functions to provide +/// a functional reader. +typedef struct mpc_reader_t { + /// Reads size bytes of data into buffer at ptr. + mpc_int32_t (*read)(void *t, void *ptr, mpc_int32_t size); + + /// Seeks to byte position offset. + BOOL (*seek)(void *t, mpc_int32_t offset); + + /// Returns the current byte offset in the stream. + mpc_int32_t (*tell)(void *t); + + /// Returns the total length of the source stream, in bytes. + mpc_int32_t (*get_size)(void *t); + + /// True if the stream is a seekable stream. + BOOL (*canseek)(void *t); + + /// Optional field that can be used to identify a particular instance of + /// reader or carry along data associated with that reader. + void *data; + + // These are used by provided internal standard file-based reader implementation. + // You shouldn't touch them. They're included in the main struct to avoid + // malloc/free. + FILE *file; + long file_size; + BOOL is_seekable; +} mpc_reader; + +/// Initializes reader with default stdio file reader implementation. Use +/// this if you're just reading from a plain file. +/// +/// \param r reader struct to initalize +/// \param input input stream to attach to the reader +void mpc_reader_setup_file_reader(mpc_reader *r, FILE *input); + +#endif // _musepack_reader_h_ |
