Пример #1
0
        private void HookSourceCallback()
        {
            EnsureHandleValid();

            unsafe
            {
                _originalSourceCallback =
                    Marshal.GetDelegateForFunctionPointer <SDL2_nmix.NMIX_SourceCallback>(Source->callback);
                _internalSourceCallback = InternalSourceCallback;

                var ptr = Marshal.GetFunctionPointerForDelegate(_internalSourceCallback);

                Source->callback = ptr;
            }
        }
Пример #2
0
        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
                );
        }