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;
     }
 }