private static extern RESULT FMOD_MusicSystem_GetParameters(IntPtr musicsystem, ref MUSIC_ITERATOR it, string filter);
private static extern RESULT FMOD_MusicSystem_GetNextParameter(IntPtr musicsystem, ref MUSIC_ITERATOR it);
public RESULT getParameters(ref MUSIC_ITERATOR it, string filter) { return FMOD_MusicSystem_GetParameters(musicsystemraw, ref it, filter); }
public RESULT getNextParameter(ref MUSIC_ITERATOR it) { return FMOD_MusicSystem_GetNextParameter(musicsystemraw, ref it); }
private void _loadParameters() { FMOD.MUSIC_ITERATOR it = new FMOD.MUSIC_ITERATOR(); FMOD.RESULT result = FMOD.RESULT.OK; if (m_parameters != null || m_musicSystem == null) { return ; } m_parameters = new List<FmodMusicParameter>(); result = m_musicSystem.getParameters(ref it, ""); if (result == FMOD.RESULT.OK) { while (it.value.ToInt32() != 0) { FMOD.MUSIC_ENTITY entity = FmodMusicEntityBuilder.getMusicEntity(it); FmodMusicParameter param = new FmodMusicParameter(entity, this); m_parameters.Add(param); } } else { Debug.LogError("FMOD_Unity: Error while loading music parameters: " + FMOD.Error.String(result)); } }
private void _loadCues() { FMOD.MUSIC_ITERATOR it = new FMOD.MUSIC_ITERATOR(); FMOD.RESULT result = FMOD.RESULT.OK; if (m_cues != null || m_musicSystem == null) { return ; } m_cues = new List<FmodMusicCue>(); result = m_musicSystem.getCues(ref it, ""); //TODO: crash here. bad it init ? bad filter ? NOPE, just that a project must be loaded first. At least one. We might have to check on that. if (result == FMOD.RESULT.OK) { while (it.value.ToInt32() != 0) { FMOD.MUSIC_ENTITY entity = FmodMusicEntityBuilder.getMusicEntity(it); FmodMusicCue cue = new FmodMusicCue(entity, this); m_cues.Add(cue); } } else { Debug.LogError("FMOD_Unity: Error while loading music cues: " + FMOD.Error.String(result)); } }