JackSharp.Processor.OnProcess C# (CSharp) Method

OnProcess() private method

private OnProcess ( uint nframes, IntPtr arg ) : int
nframes uint
arg System.IntPtr
return int
        int OnProcess(uint nframes, IntPtr arg)
        {
            AudioBuffer[] audioInBuffers = _audioInPorts.Select (p => p.GetAudioBuffer (nframes)).ToArray ();
            AudioBuffer[] audioOutBuffers = _audioOutPorts.Select (p => p.GetAudioBuffer (nframes)).ToArray ();
            MidiEventCollection<MidiInEvent>[] midiInEvents = _midiInPorts.Select (p => p.GetMidiBuffer (nframes)).ToArray ();
            MidiEventCollection<MidiOutEvent>[] midiOutEvents = _midiOutPorts.Select (p => p.GetMidiBuffer ()).ToArray ();

            if (ProcessFunc != null) {
                ProcessFunc (new ProcessBuffer (nframes, audioInBuffers, audioOutBuffers, midiInEvents, midiOutEvents));
            }
            foreach (var audioInBuffer in audioInBuffers) {
                audioInBuffer.CopyToPointer ();
            }
            foreach (var audioOutBuffer in audioOutBuffers) {
                audioOutBuffer.CopyToPointer ();
            }
            foreach (MidiEventCollection<MidiOutEvent> midiEvents in midiOutEvents) {
                midiEvents.WriteToJackMidi (nframes);
            }

            return 0;
        }