private void PlaySound(Sound.Sound snd, bool paused, Channel.Channel chn) { //FIXME The handle is changed most of the time on some system. //Only use the other metods to be safe. IntPtr channel = chn.DangerousGetHandle (); Error.Code ReturnCode = PlaySound (this.DangerousGetHandle (), Channel.Index.Reuse, snd.DangerousGetHandle (), paused, ref channel); Error.Errors.ThrowError (ReturnCode); //This can't really happend. //Check just in case... if(chn.DangerousGetHandle () == channel) throw new Exception("Channel handle got changed by Fmod."); }
public Channel.Channel PlaySound(Sound.Sound snd, bool paused) { IntPtr ChannelHandle = IntPtr.Zero; Error.Code ReturnCode = PlaySound (this.DangerousGetHandle (), Channel.Index.Free, snd.DangerousGetHandle (), paused, ref ChannelHandle); Error.Errors.ThrowError (ReturnCode); return new Channel.Channel (ChannelHandle); }