#pragma once #include 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; };