#pragma once
#include <string>
struct Mix_Chunk;
class SoundEffect final
{
public:
	explicit SoundEffect( const std::string& path, int channel = -1);
	~SoundEffect( );
	SoundEffect(const SoundEffect& other) = delete;
	SoundEffect& operator=(const SoundEffect& rhs) = delete;
	SoundEffect( SoundEffect&& other) = delete;
	SoundEffect& operator=( SoundEffect&& rhs) = delete;

	bool IsLoaded( ) const;
	void Play( const int loops ) const;
	void SetVolume( const int value ); 
	int GetVolume( ) const;
	void Stop( ) const;
	static void StopAll( );
	static void PauseAll( );
	static void ResumeAll( );

	bool IsPlaying() const;

private:
	Mix_Chunk* m_pMixChunk;
	int m_Channel;
};
