void CBackgroundSound::importForm(const std::string& filename, NLGEORGES::UFormElm& formRoot) { NLGEORGES::UFormElm *psoundType; std::string dfnName; // some basic checking. formRoot.getNodeByName(&psoundType, ".SoundType"); nlassert(psoundType != NULL); psoundType->getDfnName(dfnName); nlassert(dfnName == "background_sound.dfn"); // Call the base class CSound::importForm(filename, formRoot); // Read the array of sound with there respective filter. { _Sounds.clear(); NLGEORGES::UFormElm *psoundList; formRoot.getNodeByName(&psoundList, ".SoundType.Sounds"); if (psoundList != 0 && psoundList->isArray()) { uint size; psoundList->getArraySize(size); for (uint i=0; i<size; ++i) { TSoundInfo sound; NLGEORGES::UFormElm *psoundItem; psoundList->getArrayNode(&psoundItem, i); if (psoundItem != NULL) { // Read the sound name. std::string soundName; psoundItem->getValueByName(soundName, "Sound"); sound.SoundName = CStringMapper::map(CFile::getFilenameWithoutExtension(soundName)); // Read the environnement flag. for (uint j=0; j<UAudioMixer::TBackgroundFlags::NB_BACKGROUND_FLAGS; j++) { char tmp[200]; sprintf(tmp, "Filter%2.2u", j); psoundItem->getValueByName(sound.Filter.Flags[j], tmp); } } _Sounds.push_back(sound); } } } _DurationValid = false; }
/// Load the sound parameters from georges' form void CContextSound::importForm(const std::string& filename, NLGEORGES::UFormElm& formRoot) { NLGEORGES::UFormElm *psoundType; std::string dfnName; // some basic checking. formRoot.getNodeByName(&psoundType, ".SoundType"); nlassert(psoundType != NULL); psoundType->getDfnName(dfnName); nlassert(dfnName == "context_sound.dfn"); // Call the base class CSound::importForm(filename, formRoot); // Read the pattern name formRoot.getValueByName(_PatternName, ".SoundType.PatternName"); }
/** * Load the sound parameters from georges' form */ void CSimpleSound::importForm(const std::string& filename, NLGEORGES::UFormElm& root) { NLGEORGES::UFormElm *psoundType; std::string dfnName; // some basic checking. root.getNodeByName(&psoundType, ".SoundType"); nlassert(psoundType != NULL); psoundType->getDfnName(dfnName); nlassert(dfnName == "simple_sound.dfn"); // Call the base class CSound::importForm(filename, root); // Name _Filename = CStringMapper::map(filename); // Buffername std::string bufferName; root.getValueByName(bufferName, ".SoundType.Filename"); bufferName = CFile::getFilenameWithoutExtension(bufferName); _Buffername = CStringMapper::map(bufferName); setBuffer(NULL); // contain % so it need a context to play if (bufferName.find ("%") != string::npos) { _NeedContext = true; } // MaxDistance root.getValueByName(_MaxDist, ".SoundType.MaxDistance"); // MinDistance root.getValueByName(_MinDist, ".SoundType.MinDistance"); // Alpha root.getValueByName(_Alpha, ".SoundType.Alpha"); }
void CStreamSound::importForm(const std::string &filename, NLGEORGES::UFormElm &root) { NLGEORGES::UFormElm *psoundType; std::string dfnName; // some basic checking. root.getNodeByName(&psoundType, ".SoundType"); nlassert(psoundType != NULL); psoundType->getDfnName(dfnName); nlassert(dfnName == "stream_sound.dfn"); // Call the base class CSound::importForm(filename, root); // MaxDistance root.getValueByName(_MaxDist, ".SoundType.MaxDistance"); // MinDistance root.getValueByName(_MinDist, ".SoundType.MinDistance"); // Alpha root.getValueByName(m_Alpha, ".SoundType.Alpha"); }