48 lines
902 B
C++
48 lines
902 B
C++
#include "soundnode.h"
|
|
#include "resourcemanager.h"
|
|
|
|
SoundNode::SoundNode(std::string soundFileName):
|
|
m_sound_file(soundFileName)
|
|
{
|
|
|
|
}
|
|
|
|
void SoundNode::init()
|
|
{
|
|
if ((m_valid = RESOURCE_CHECK(sf::SoundBuffer,m_sound_file)))
|
|
m_sound.setBuffer(*RESOURCE_GET(sf::SoundBuffer, m_sound_file));
|
|
else{
|
|
sf::SoundBuffer* buffer;
|
|
m_valid = buffer->loadFromFile(m_sound_file);
|
|
if(m_valid){
|
|
RESOURCE_ADD(buffer,sf::SoundBuffer,m_sound_file);
|
|
m_sound.setBuffer(*buffer);
|
|
}
|
|
}
|
|
}
|
|
|
|
void SoundNode::play()
|
|
{
|
|
if (m_valid)
|
|
m_sound.play();
|
|
}
|
|
|
|
void SoundNode::pause()
|
|
{
|
|
if(m_valid)
|
|
m_sound.pause();
|
|
}
|
|
|
|
void SoundNode::stop()
|
|
{
|
|
if(m_valid)
|
|
m_sound.stop();
|
|
}
|
|
|
|
void SoundNode::setPosition(glm::vec3 pos,bool relative)
|
|
{
|
|
m_sound.setPosition(pos.x,pos.y,pos.z);
|
|
m_sound.setRelativeToListener(relative);
|
|
}
|
|
|