private void HookSourceCallback() { EnsureHandleValid(); unsafe { _originalSourceCallback = Marshal.GetDelegateForFunctionPointer <SDL2_nmix.NMIX_SourceCallback>(Source->callback); _internalSourceCallback = InternalSourceCallback; var ptr = Marshal.GetFunctionPointerForDelegate(_internalSourceCallback); Source->callback = ptr; } }
public Waveform(AudioFormat format, AudioStreamDelegate sampleGenerator, ChannelMode channelMode = ChannelMode.Stereo, int frequency = 44100) { _internalCallback = AudioCallback; SampleGenerator = sampleGenerator; ChannelMode = channelMode; Frequency = frequency; Handle = SDL2_nmix.NMIX_NewSource( format.SdlFormat, (byte)ChannelMode, Frequency, _internalCallback, IntPtr.Zero ); }