void KRAudioSource::loadXML(tinyxml2::XMLElement *e) { m_audio_sample_name = e->Attribute("sample"); float gain = 1.0f; if(e->QueryFloatAttribute("gain", &gain) != tinyxml2::XML_SUCCESS) { gain = 1.0f; } setGain(gain); float pitch = 1.0f; if(e->QueryFloatAttribute("pitch", &pitch) != tinyxml2::XML_SUCCESS) { pitch = 1.0f; } setPitch(m_pitch); bool looping = false; if(e->QueryBoolAttribute("looping", &looping) != tinyxml2::XML_SUCCESS) { looping = false; } setLooping(looping); bool is3d = true; if(e->QueryBoolAttribute("is3d", &is3d) != tinyxml2::XML_SUCCESS) { is3d = true; } setIs3D(is3d); float reference_distance = 1.0f; if(e->QueryFloatAttribute("reference_distance", &reference_distance) != tinyxml2::XML_SUCCESS) { reference_distance = 1.0f; } setReferenceDistance(reference_distance); float reverb = 0.0f; if(e->QueryFloatAttribute("reverb", &reverb) != tinyxml2::XML_SUCCESS) { reverb = 0.0f; } setReverb(reverb); float rolloff_factor = 2.0f; if(e->QueryFloatAttribute("rolloff_factor", &rolloff_factor) != tinyxml2::XML_SUCCESS) { rolloff_factor = 2.0f; } setRolloffFactor(rolloff_factor); m_enable_obstruction = true; if(e->QueryBoolAttribute("enable_obstruction", &m_enable_obstruction) != tinyxml2::XML_SUCCESS) { m_enable_obstruction = true; } m_enable_occlusion = true; if(e->QueryBoolAttribute("enable_occlusion", &m_enable_occlusion) != tinyxml2::XML_SUCCESS) { m_enable_occlusion = true; } KRNode::loadXML(e); }
void Sound::setDefaults() { setPosition(Vector3::ZERO); setDirection(Vector3::UNIT_Y); setPitch(1.f); setGain(1.f, 0.f, 1.f); setLooping(false); setRolloff(1.f); setReferenceDistance(1.f); setCone(360.f,360.f,0.f); setRelative(true); setOffsetSeconds(0.f); rewind(); }
void SoundSource::setDistanceValues(Ogre::Real maxDistance, Ogre::Real rolloffFactor, Ogre::Real refDistance) { setMaxDistance(maxDistance); setRolloffFactor(rolloffFactor); setReferenceDistance(refDistance); }