#pragma once #include #include class Sound { public: virtual bool Load(char* sound, bool loop)=0; virtual int Play()=0;//returns channel virtual void Stop(int channel)=0; virtual void Discard()=0; void Volume(int channel,int vol); }; class Sample : public Sound { public: Sample(){pSample = 0;} // ~Sample(){ Discard(); } bool Load(char* sound, bool loop); int Play(); void Play(int channel); void Stop(int channel); void Discard(); void SetFrequency(int channel,int frequency); void SetDefaults(int deffreq, int defvol, int defpan, int defpri, int varfreq, int varvol, int varpan); private: FSOUND_SAMPLE* pSample; }; class Stream : public Sound { public: Stream(){pStream = 0;} // ~Stream(){ Discard(); } bool Load(char* sound, bool loop); int Play(); void Play(int channel); void Stop(int channel); void Discard(); void Seek(int ms, int channel); private: FSOUND_STREAM* pStream; };