Ignore:
Timestamp:
10/06/06 17:14:05 (18 years ago)
Author:
zorg
Message:

Separated public interface from private headers
Use opaque objects whenever possible
Some (useless?) cosmetics on libmpcdec
Remove sv5-6 outdated support
Added libwavformat for upcoming mpcdec
New layout
Work in progress...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libmpcdec/branches/zorg/include/mpcdec/reader.h

    r7 r68  
    3232  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    3333*/
     34/// \file reader.h
     35#ifndef _MPCDEC_READER_H_
     36#define _MPCDEC_READER_H_
     37#ifdef WIN32
     38#pragma once
     39#endif
    3440
    35 /// \file reader.h
     41#include "mpc_types.h"
    3642
    37 #ifndef _mpcdec_reader_h_
    38 #define _mpcdec_reader_h_
     43#ifdef __cplusplus
     44extern "C" {
     45#endif
     46
    3947
    4048/// \brief Stream reader interface structure.
     
    4351/// to feed it with raw data.  Implement the five member functions to provide
    4452/// a functional reader.
    45 typedef struct mpc_reader_t {
     53typedef struct mpc_reader_t mpc_reader;
     54struct mpc_reader_t {
    4655    /// 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);
    4857
    4958    /// 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);
    5160
    5261    /// Returns the current byte offset in the stream.
    53         mpc_int32_t (*tell)(void *t);
     62        mpc_int32_t (*tell)(mpc_reader *p_reader);
    5463
    5564    /// 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);
    5766
    5867    /// True if the stream is a seekable stream.
    59         mpc_bool_t (*canseek)(void *t);
     68        mpc_bool_t (*canseek)(mpc_reader *p_reader);
    6069
    6170    /// Field that can be used to identify a particular instance of
    6271    /// reader or carry along data associated with that reader.
    6372    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};
    7474
    7575/// Initializes reader with default stdio file reader implementation.  Use
    7676/// this if you're just reading from a plain file.
    7777///
    78 /// \param r reader struct to initalize
    79 /// \param input input stream to attach to the reader
    80 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
     80mpc_status mpc_init_stdio_reader(mpc_reader *p_reader, char *filename);
    8181
    82 #endif // _mpcdec_reader_h_
     82/// Release reader with default stdio file reader implementation.
     83///
     84/// \param r reader handle to release
     85void 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.