#ifndef NES_AUDIO_H_ #define NES_AUDIO_H_ #include "apu.h" // System Glue typedef struct nes_Audio_Stream_t { int (*init)(struct nes_Audio_Stream_t*, int frequency); void (*done)(struct nes_Audio_Stream_t*); int (*push)(struct nes_Audio_Stream_t*, short*, int); void* data; } nes_Audio_Stream; static inline int nes_audio_init(nes_Audio_Stream* stream, int frequency) { return stream->init(stream, frequency); } static inline void nes_audio_done(nes_Audio_Stream* stream) { stream->done(stream); } static inline int nes_audio_push(nes_Audio_Stream* stream, short* samples, int n_samples) { return stream->push(stream, samples, n_samples); } // Convenience int nes_audio_fill(nes_Audio_Stream* stream, nes_apu* apu); #endif // NES_AUDIO_H_