#include "Sound.h" void Sound::Volume(int channel,int vol) { FSOUND_SetVolume(channel,vol); } bool Sample::Load(char* sound, bool loop) { if(loop) { if((pSample = FSOUND_Sample_Load(FSOUND_FREE,sound,FSOUND_NORMAL | FSOUND_LOOP_NORMAL,0,0))==0) { printf("Failed to load sample: %s\n",sound); return false; } } else { if((pSample = FSOUND_Sample_Load(FSOUND_FREE,sound,FSOUND_NORMAL | FSOUND_LOOP_OFF,0,0))==0) { printf("Failed to load sample: %s\n",sound); return false; } } return true; } int Sample::Play() { if(pSample) return(FSOUND_PlaySound(FSOUND_FREE,pSample)); return -1; } void Sample::Play(int channel) { if(pSample) FSOUND_PlaySound(channel,pSample); } void Sample::Stop(int channel) { FSOUND_StopSound(channel); } void Sample::Discard() { if(pSample) FSOUND_Sample_Free(pSample); // pSample = 0; } void Sample::SetFrequency(int channel,int frequency) { FSOUND_SetFrequency(channel,frequency); } void Sample::SetDefaults(int deffreq, int defvol, int defpan, int defpri, int varfreq, int varvol, int varpan) { FSOUND_Sample_SetDefaultsEx(pSample,deffreq,defvol,defpan,defpri,varfreq,varvol,varpan); } bool Stream::Load(char* stream, bool loop) { if(loop) { if((pStream = FSOUND_Stream_Open(stream,FSOUND_NORMAL | FSOUND_LOOP_NORMAL,0,0))==0) { printf("Failed to load sample: %s\n",stream); return false; } } else { if((pStream = FSOUND_Stream_Open(stream,FSOUND_NORMAL,0,0))==0) { printf("Failed to load sample: %s\n",stream); return false; } } return true; } int Stream::Play() { if(pStream) return(FSOUND_Stream_Play(FSOUND_FREE,pStream)); return -1; } void Stream::Play(int channel) { if(pStream) FSOUND_Stream_Play(channel,pStream); // return(FSOUND_Stream_Play(channel,pStream)); // return -1; } void Stream::Stop(int channel) { if(pStream) FSOUND_Stream_Stop(pStream); } void Stream::Discard() { if(pStream) FSOUND_Stream_Close(pStream); pStream = 0; } void Stream::Seek(int ms, int channel) { if(pStream) { FSOUND_Stream_Play(channel,pStream); FSOUND_SetPaused(channel,true); FSOUND_Stream_SetTime(pStream,ms); FSOUND_SetPaused(channel,false); } }