#ifndef __FISHBONE_SOUND_H__ #define __FISHBONE_SOUND_H__ namespace fishbone { class SoundDriver; class SoundLoader; class Sound; }; // namespace fishbone #include #include #ifdef _FISHBONE #if defined(FISHBONE_SOUND_USE_SDL2) typedef size_t FISHBONE_SOUNDDRV_HANDLE; #endif #else typedef void* FISHBONE_SOUNDDRV_HANDLE; #endif namespace fishbone { class SoundDriver { FISHBONE_SOUNDDRV_HANDLE sound; public: SoundDriver(); ~SoundDriver(); fishbone::Mixer mixer; }; class SoundLoader { public: SoundLoader(); ~SoundLoader(); virtual Sound* open(void* buffer, size_t size); virtual int read(Sound* sound, short* buffer, size_t frames); }; class Sound { SoundLoader* loader; public: Sound(SoundLoader* loader); int read(short* buffer, size_t frames); int rate; int channels; }; }; // namespace fishbone #endif