public List <FmodEvent> loadEventsFromFile(string assetPath, string assetName, FmodEventAsset asset) { FMOD.EventGroup eventgroup = null; FMOD.RESULT result = FMOD.RESULT.OK; List <FmodEvent> events = new List <FmodEvent>(); List <FmodEventGroup> eventGroups = new List <FmodEventGroup>(); int numGroups = 0; FmodEventGroup toAdd = null; FMOD.EVENT_LOADINFO loadInfo = new FMOD.EVENT_LOADINFO(); FMOD.EventProject project = null; _loadFile(assetPath, assetName, ref loadInfo, ref project); _getSoundBankNames(asset); FMOD.EVENT_PROJECTINFO projectInfo = new FMOD.EVENT_PROJECTINFO(); project.getInfo(ref projectInfo); asset.setProjectName(new string(projectInfo.name)); result = project.getNumGroups(ref numGroups); ERRCHECK(result); for (int i = 0; i < numGroups; i++) { result = project.getGroupByIndex(i, false, ref eventgroup); ERRCHECK(result); toAdd = FmodEventGroup.CreateInstance("FmodEventGroup") as FmodEventGroup; toAdd.Initialize(eventgroup, null, asset); eventGroups.Add(toAdd); events.AddRange(toAdd.getAllEvents()); } asset.setEventGroups(eventGroups); loadReverbsFromFile(asset); return(events); }
protected void _loadFile(string assetPath, string assetName, ref FMOD.EVENT_LOADINFO loadInfo, ref FMOD.EventProject project) { FMOD.RESULT result = FMOD.RESULT.OK; string key = assetPath + "/" + assetName; if (m_loadedProjects.ContainsKey(key)) { loadInfo = m_loadInfos[key]; project = m_loadedProjects[key]; return; } if (m_eventSystemWasInit == false) { init(); } result = getEventSystem().setMediaPath(assetPath + "/"); ERRCHECK(result); //load a .fev file exported from FMOD Designer result = getEventSystem().load(assetName, ref loadInfo, ref project); // we should only pass here once per file ERRCHECK(result); if (result == FMOD.RESULT.ERR_EVENT_ALREADY_LOADED) { throw new Exception("Error: Event file already loaded: " + assetPath + "/" + assetName); } if (result == FMOD.RESULT.OK) { m_loadedProjects[key] = project; m_loadInfos[key] = loadInfo; } }
public FMOD.RESULT loadEventFromFile(FmodEventAudioSource src) { FmodEvent evt = src.getSource(); FmodEventAsset asset = evt.getAsset(); FMOD.RESULT result = FMOD.RESULT.OK; FMOD.EVENT_LOADINFO loadInfo = new FMOD.EVENT_LOADINFO(); FMOD.EventProject project = null; FMOD.Event fmodEvent = null; _loadFile(asset.getMediaPath(), asset.getName(), ref loadInfo, ref project); _loadEventGroup(evt); result = _loadEvent(evt, ref fmodEvent); ERRCHECK(result); if (result == FMOD.RESULT.OK) { src.SetEvent(fmodEvent); } return(result); }