SparrowEngine/src/scene/soundnode.cpp

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);
}