add explanatory comment regarding coremidi data flow
This commit is contained in:
parent
539d924691
commit
36fb8c44c1
@ -28,6 +28,26 @@ using namespace ARDOUR;
|
|||||||
static int _debug_mode = 0;
|
static int _debug_mode = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MIDI Data flow
|
||||||
|
*
|
||||||
|
* (A) INPUT (incoming from outside the application)
|
||||||
|
*
|
||||||
|
* - midiInputCallback (in its own thread, async WRT process callback):
|
||||||
|
* takes OS X MIDIPacket, copies into lock-free ringbuffer
|
||||||
|
*
|
||||||
|
* - processCallback (in its own thread):
|
||||||
|
*
|
||||||
|
* (1) loop on all input ports:
|
||||||
|
* 1A) call recv_event() to read from ringbuffer into stack buffer, also assign-timestamp,
|
||||||
|
* 1B) call parse_events() using stack buffer, when appropriate
|
||||||
|
* pushes CoreMidiEvent into std::vector<CoreMidiEvent>
|
||||||
|
*
|
||||||
|
* (2) in MidiPort::cycle_start() (also part of the process callback call tree), MidiPort::get_midi_buffer()
|
||||||
|
* calls CoreAudioBackend::midi_event_get () returns a pointer to the data of the specified CoreMidiEvent
|
||||||
|
*/
|
||||||
|
|
||||||
static void notifyProc (const MIDINotification *message, void *refCon) {
|
static void notifyProc (const MIDINotification *message, void *refCon) {
|
||||||
CoreMidiIo *self = static_cast<CoreMidiIo*>(refCon);
|
CoreMidiIo *self = static_cast<CoreMidiIo*>(refCon);
|
||||||
self->notify_proc(message);
|
self->notify_proc(message);
|
||||||
|
Loading…
Reference in New Issue
Block a user