#include "resource_sound_buffer.h" #include "debug.h" namespace OrxSound { ObjectListDefinition(ResourceSoundBuffer); ResourceSoundBuffer::ResourceSoundBuffer(const std::string& soundName, const Resources::KeepLevel& keepLevel) : SoundBuffer(), Resource(&ResourceSoundBuffer::type) { this->registerObject(this, ResourceSoundBuffer::_objectList); Resources::StorePointer* ptr = this->acquireResource(soundName); if (ptr) { assert(!static_cast(ptr)->ptr().isNull()); PRINTF(5)("FOUND SOUND: %s\n", soundName.c_str()); this->acquireData(static_cast(ptr)->ptr()); } else { PRINTF(5)("SOUND NOT FOUND: %s\n", soundName.c_str()); std::string fileName = this->Resource::locateFile(soundName); this->SoundBuffer::load(fileName); this->Resource::addResource(new ResourceSoundBuffer::SoundBufferResourcePointer(soundName, keepLevel, this->SoundBuffer::dataPointer())); } } Resources::tType ResourceSoundBuffer::type("SoundBuffer"); ResourceSoundBuffer::SoundBufferResourcePointer::SoundBufferResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const SoundBufferData::Pointer& data) : Resources::StorePointer(loadString, keepLevel) , pointer(data) {}}