public SoundChannel_FMOD CreateChannel(string file) { var chnl = new SoundChannel_FMOD(this, file); m_aChannels.Add(chnl); return(chnl); }
internal void OnChannelCleared(SoundChannel_FMOD chnl) { FMOD.Sound snd = chnl.RefFMODSound; if (snd != null) { Sounds.Remove(snd); snd.release(); //bool invalid = true; //if (dcSounds.ContainsValue(snd)) //{ // foreach (SoundChannel_FMOD ch in m_aChannels) // { // if (ch != chnl && ch.RefFMODSound == snd) // { // invalid = false; // break; // } // } //} //if (invalid) //{ // if (dcSounds.ContainsValue(snd)) // { // string[] files = (from kv in dcSounds where kv.Value == snd select kv.Key).ToArray(); // if (files != null) // { // foreach (var file in files) // dcSounds.Remove(file); // } // } // snd.release(); //} chnl.RefFMODSound = null; } }