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(); Code returnCode = PlaySound(DangerousGetHandle(), Index.Reuse, snd.DangerousGetHandle(), paused, ref channel); 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; Code returnCode = PlaySound(DangerousGetHandle(), Index.Free, snd.DangerousGetHandle(), paused, ref channelHandle); Errors.ThrowError(returnCode); return new Channel.Channel(channelHandle); }