Updating built in Io code to use += instead of x = x + y
[io/quag.git] / addons / PortAudio / source / new / IoMP3Decoder.h
blob768bbeb2eeda9de90fb969867b29b71f0f676600
1 /* copyright: Steve Dekorte, 2002
2 * All rights reserved. See _BSDLicense.txt.
3 */
5 #ifndef IOMP3DECODER_DEFINED
6 #define IOMP3DECODER_DEFINED 1
8 #include "IoObject.h"
9 #include "IoSeq.h"
10 #include "mad.h"
12 #define ISMP3DECODER(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoMP3Decoder_rawClone)
14 typedef IoObject IoMP3Decoder;
16 typedef struct
18 struct mad_decoder decoder;
19 int isRunning;
20 IoMessage *willProcessMessage;
21 IoMessage *didProcessMessage;
22 IoSeq *inputBuffer;
23 IoSeq *outputBuffer;
24 size_t lastInputPos;
25 UArray *tmpInputBa;
26 } IoMP3DecoderData;
28 IoMP3Decoder *IoMP3Decoder_proto(void *state);
29 IoMP3Decoder *IoMP3Decoder_new(void *state);
30 IoMP3Decoder *IoMP3Decoder_rawClone(IoMP3Decoder *self);
31 void IoMP3Decoder_mark(IoMP3Decoder *self);
32 void IoMP3Decoder_free(IoMP3Decoder *self);
34 /* ----------------------------------------------------------- */
35 IoObject *IoMP3Decoder_start(IoMP3Decoder *self, IoObject *locals, IoMessage *m);
36 IoObject *IoMP3Decoder_stop(IoMP3Decoder *self, IoObject *locals, IoMessage *m);
38 IoObject *IoMP3Decoder_inputBuffer(IoMP3Decoder *self, IoObject *locals, IoMessage *m);
39 IoObject *IoMP3Decoder_outputBuffer(IoMP3Decoder *self, IoObject *locals, IoMessage *m);
41 #endif