#ifndef _CSOUND_HPP_ #define _CSOUND_HPP_ /*** SDL Header Files ***/ #include #include /*** DLL Header File ***/ #include "dllExport.h" /*** Custom Header Files ***/ #include "../UtilityEngine/cString.hpp" using UtilityEngine::cString; namespace AudioEngine { class EXPORT_FROM_MYDLL cSound { public: cSound( const cString& dir = "", const cString& filename = "", const unsigned char volume = 255, const unsigned char distance = 100, const short int angle = 0, const long int channel = -1, const long int loops = -1 ); /* Copy constructor */ cSound( const cSound& copy ); ~cSound(); /// Functions /* Plays the sound if loaded */ void PlaySound(); /* Fades in the sound for time */ void FadeIn( const unsigned int time = 1000 ) const; /* Fades out the sound for time */ void FadeOut( const unsigned int time = 1000 ) const; /// Sets /* Sets the directory of the sound */ void setDir( const cString& dir ); /* Sets the file name of the sound */ void setFileName( const cString& filename ); /* Sets the file name and the directory of the sound */ void setFileNameandDir( const cString& filename, const cString& dir = "" ); /* Sets the Volume of the sound */ void setVolume( const unsigned char volume = 255 ); /* Sets the Distance of the sound */ void setDistance( const unsigned char distance = 100 ); /* Sets the Angle of the sound */ void setAngle( const short int angle = 0 ); /* Sets the Channel of the sound */ void setChannel( const long int channel = -1); /* Sets how many times the sound loops */ void setLoops( const long int loops = -1 ); /// Gets /* Gets the directory of the sound */ const cString& getDir() const; /* Gets the file name of the sound */ const cString& getFileName() const; /* Gets the Volume of the sound */ const unsigned char getVolume() const; /* Gets the Distance of the sound */ const unsigned char getDistance() const; /* Gets the Angle of the sound */ const short int getAngle() const; /* Gets the Channel of the sound */ const long int getChannel() const; /* Gets how many times the sound loops */ const long int getLoops() const; private: /// Functions void LoadSound(); void UnloadSound(); private: /// Variables Mix_Chunk* mp_sound;/// = nullptr cString m_dir;/// = "" cString m_fileName;/// = "" unsigned char m_volume;/// = 255 unsigned char m_distance;/// = 100 short int m_angle;/// = 0 long int m_channel;/// = -1 long int m_loops;/// = 0 };/// END CLASS DEFINITION cSound }/// END NAMESPACE DEFINITION AudioEngine #endif/// END IFNDEF _CSOUND_HPP_