====== Rosegarden MIDI Dataflows ====== These were assembled March 2013, so they may be out of date. ===== Playback Dataflow (Old) ===== {{dev:rg-midi-playback-dataflow-old.png }} Specfic routines involved: * Segment (which is part of the document) * SegmentMapper::dump() * MappedSegment::getBuffer() * MappedSegment::m_buffer * MappedSegment::iterator::peek() * MappedSegmentsMetaIterator::fillCompositionWithEventsUntil() * RosegardenSequencer::getSlice() * RosegardenSequencer::fetchEvents() * RosegardenSequencer::keepPlaying() * AlsaDriver::processEventsOut() * AlsaDriver::processMIDIOut() ===== Playback Dataflow (New) ===== {{dev:rg-midi-playback-dataflow-new.png }} Specfic routines involved: * Segment * InternalSegmentMapper::fillBuffer() * MappedEventBuffer::mapAnEvent() * MappedEventBuffer::getBuffer() * MappedEventBuffer::m_buffer * MappedEventBuffer::iterator::peek() * MappedBufMetaIterator::fetchEventsNoncompeting() * MappedBufMetaIterator::fetchEvents() * RosegardenSequencer::getSlice() * RosegardenSequencer::fetchEvents() * RosegardenSequencer::keepPlaying() * AlsaDriver::processEventsOut() * AlsaDriver::processMIDIOut() ===== Record Dataflow ===== {{dev:rg-midi-record-dataflow.png }} Specfic routines involved: * AlsaDriver::getMappedEventList() * RosegardenSequencer::processRecordedMidi() * SequencerDataBlock::addRecordedEvents() * SequencerDataBlock::getRecordedEvents() * RosegardenMainWindow::processRecordedEvents() * RosegardenDocument::insertRecordedMidi()