diff options
Diffstat (limited to 'apps/codecs/libmusepack/reader.h')
| -rw-r--r-- | apps/codecs/libmusepack/reader.h | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/apps/codecs/libmusepack/reader.h b/apps/codecs/libmusepack/reader.h index 397319b..60a0ef9 100644 --- a/apps/codecs/libmusepack/reader.h +++ b/apps/codecs/libmusepack/reader.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, The Musepack Development Team + Copyright (c) 2005-2009, The Musepack Development Team All rights reserved. Redistribution and use in source and binary forms, with or without @@ -31,52 +31,68 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - /// \file reader.h +#ifndef _MPCDEC_READER_H_ +#define _MPCDEC_READER_H_ +#ifdef WIN32 +#pragma once +#endif + +#include "mpc_types.h" +#include <stdio.h> + +#ifdef __cplusplus +extern "C" { +#endif -#ifndef _mpcdec_reader_h_ -#define _mpcdec_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 { +typedef struct mpc_reader_t mpc_reader; +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); + mpc_int32_t (*read)(mpc_reader *p_reader, void *ptr, mpc_int32_t size); /// Seeks to byte position offset. - mpc_bool_t (*seek)(void *t, mpc_int32_t offset); + mpc_bool_t (*seek)(mpc_reader *p_reader, mpc_int32_t offset); /// Returns the current byte offset in the stream. - mpc_int32_t (*tell)(void *t); + mpc_int32_t (*tell)(mpc_reader *p_reader); /// Returns the total length of the source stream, in bytes. - mpc_int32_t (*get_size)(void *t); + mpc_int32_t (*get_size)(mpc_reader *p_reader); /// True if the stream is a seekable stream. - mpc_bool_t (*canseek)(void *t); + mpc_bool_t (*canseek)(mpc_reader *p_reader); /// Field that can be used to identify a particular instance of /// reader or carry along data associated with that reader. void *data; - -} mpc_reader; -/* No standard STDIO based reader in Rockbox -typedef struct mpc_reader_file_t { - mpc_reader reader; - - FILE *file; - long file_size; - mpc_bool_t is_seekable; -} mpc_reader_file; -*/ +}; +/* rockbox: not used /// 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_file *r, FILE *input); */ +/// \param r p_reader handle to initialize +/// \param filename input filename to attach to the reader +MPC_API mpc_status mpc_reader_init_stdio(mpc_reader *p_reader, const char *filename); -#endif // _mpcdec_reader_h_ +/// Initializes reader with default stdio file reader implementation. Use +/// this if you prefer to open the file yourself. +/// +/// \param r p_reader handle to initialize +/// \param p_file input file handle (already open) +MPC_API mpc_status mpc_reader_init_stdio_stream(mpc_reader * p_reader, FILE * p_file); + +/// Release reader with default stdio file reader implementation. +/// +/// \param r reader handle to release +MPC_API void mpc_reader_exit_stdio(mpc_reader *p_reader); +*/ +#ifdef __cplusplus +} +#endif +#endif |