2 * wave.datatype by Fredrik Wikstrom
6 #ifndef WAVE_DECODERS_H
7 #define WAVE_DECODERS_H
11 #define DEC_SETUPPROTO(NAME) \
12 LONG NAME (struct DecoderData *data)
14 #define DEC_CLEANUPPROTO(NAME) \
15 void NAME (struct DecoderData *data)
17 #define DECODERPROTO(NAME) \
18 LONG NAME (struct DecoderData *data, struct WaveFormatEx *fmt, UBYTE *Src, BYTE **Dst, LONG numBlocks, LONG numFrames)
20 #define DECODERPROTO_v2(NAME) \
21 LONG NAME (struct DecoderData *data, BPTR file, BYTE **Dst, LONG totalFrames, LONG *decFrames)
24 struct ClassBase
*libBase
;
25 struct RIFFChunk chunk
;
26 struct WaveFormatEx
*fmt
;
28 void * state
; // decoder-specific data
29 DECODERPROTO((*Decode
));
30 DECODERPROTO((*DecodeFrames
));
36 DEC_SETUPPROTO((*Setup
));
37 DEC_CLEANUPPROTO((*Cleanup
));
38 DECODERPROTO((*Decode
));
39 DECODERPROTO((*DecodeFrames
));
42 struct Decoder
* GetDecoder(UWORD fmtTag
);