Files
SDLPongCPP/.svn/pristine/69/69cacf9f5ed8d6e1a8e25ebfdf4145fbef374f33.svn-base
T
2018-06-25 21:48:45 -04:00

92 lines
2.6 KiB
Plaintext

#ifndef _CSOUND_HPP_
#define _CSOUND_HPP_
/*** SDL Header Files ***/
#include <SDL.h>
#include <SDL_mixer.h>
/*** 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_