#include "gxmusic.hpp" #include #include "std.hpp" gxMusic::gxMusic(gxAudio* a, FMUSIC_MODULE* m, FSOUND_STREAM* s) : audio(a), module(m), stream(s), stream_channel(-1) {} gxMusic::~gxMusic() { if (module) FMUSIC_FreeSong(module); else FSOUND_Stream_Close(stream); } void gxMusic::play() { if (module) { FMUSIC_PlaySong(module); } else { stream_channel = FSOUND_Stream_Play(FSOUND_FREE, stream); } } void gxMusic::stop() { if (module) { FMUSIC_StopSong(module); } else { FSOUND_Stream_Stop(stream); stream_channel = -1; } } void gxMusic::setVolume(float volume) { if (module) { FMUSIC_SetMasterVolume(module, volume * 255.0f); } else { FSOUND_SetVolume(stream_channel, volume * 255.0f); } } void gxMusic::setPaused(bool paused) { if (module) { FMUSIC_SetPaused(module, paused); } else { FSOUND_SetPaused(stream_channel, paused); } } bool gxMusic::isPlaying() const { if (module) { return FMUSIC_IsPlaying(module) ? true : false; } else { return FSOUND_IsPlaying(stream_channel) ? true : false; } return false; }