#pragma once
#include <FMOD/fmod.h>
#include <stdio.h>

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;
};
