Audacity 3.2.0
|
#include <MIDIPlay.h>
Public Member Functions | |
Iterator (const PlaybackSchedule &schedule, MIDIPlay &midiPlay, NoteTrackConstArray &midiPlaybackTracks, double startTime, double offset, bool send) | |
~Iterator () | |
void | Prime (bool send, double startTime) |
double | GetNextEventTime () const |
double | UncorrectedMidiEventTime (double pauseTime) |
bool | Unmuted (bool hasSolo) const |
bool | OutputEvent (double pauseTime, bool sendMidiState, bool hasSolo) |
void | GetNextEvent () |
Public Attributes | |
const PlaybackSchedule & | mPlaybackSchedule |
MIDIPlay & | mMIDIPlay |
Alg_iterator | it { nullptr, false } |
Alg_event * | mNextEvent = nullptr |
The next event to play (or null) More... | |
NoteTrack * | mNextEventTrack = nullptr |
Track of next event. More... | |
bool | mNextIsNoteOn = false |
Is the next event a note-on? More... | |
Private Attributes | |
double | mNextEventTime = 0 |
Definition at line 40 of file MIDIPlay.h.
anonymous_namespace{MIDIPlay.cpp}::Iterator::Iterator | ( | const PlaybackSchedule & | schedule, |
MIDIPlay & | midiPlay, | ||
NoteTrackConstArray & | midiPlaybackTracks, | ||
double | startTime, | ||
double | offset, | ||
bool | send | ||
) |
Definition at line 623 of file MIDIPlay.cpp.
anonymous_namespace{MIDIPlay.cpp}::Iterator::~Iterator | ( | ) |
void anonymous_namespace{MIDIPlay.cpp}::Iterator::GetNextEvent | ( | ) |
Definition at line 968 of file MIDIPlay.cpp.
References anonymous_namespace{MIDIPlay.h}::gAllNotesOff, it, anonymous_namespace{MIDIPlay.h}::MIDIPlay::MidiLoopOffset(), mMIDIPlay, mNextEvent, mNextEventTime, mNextEventTrack, mNextIsNoteOn, mPlaybackSchedule, and PlaybackSchedule::mT1.
Referenced by Prime().
double anonymous_namespace{MIDIPlay.cpp}::Iterator::GetNextEventTime | ( | ) | const |
Definition at line 671 of file MIDIPlay.cpp.
References anonymous_namespace{MIDIPlay.h}::gAllNotesOff, mNextEvent, and mNextEventTime.
Referenced by Prime(), and UncorrectedMidiEventTime().
bool anonymous_namespace{MIDIPlay.cpp}::Iterator::OutputEvent | ( | double | pauseTime, |
bool | sendMidiState, | ||
bool | hasSolo | ||
) |
sendMidiState | when true, sendMidiState means send only updates, not note-ons, used to send state changes that precede the selected notes |
Definition at line 806 of file MIDIPlay.cpp.
References anonymous_namespace{MIDIPlay.h}::MIDIPlay::AllNotesOff(), details::end(), anonymous_namespace{MIDIPlay.h}::gAllNotesOff, PlaybackSchedule::GetPolicy(), NoteTrack::GetVelocity(), it, PlaybackPolicy::Looping(), anonymous_namespace{MIDIPlay.h}::MIDIPlay::mMaxMidiTimestamp, mMIDIPlay, anonymous_namespace{MIDIPlay.h}::MIDIPlay::mMidiStream, mNextEvent, mNextEventTrack, mNextIsNoteOn, anonymous_namespace{MIDIPlay.h}::MIDIPlay::mPendingNotesOff, mPlaybackSchedule, anonymous_namespace{MIDIPlay.h}::MIDIPlay::mSynthLatency, name, ROUND, UncorrectedMidiEventTime(), and Unmuted().
Referenced by Prime().
void anonymous_namespace{MIDIPlay.cpp}::Iterator::Prime | ( | bool | send, |
double | startTime | ||
) |
Definition at line 652 of file MIDIPlay.cpp.
References GetNextEvent(), GetNextEventTime(), mNextEvent, and OutputEvent().
Referenced by Iterator().
double anonymous_namespace{MIDIPlay.cpp}::Iterator::UncorrectedMidiEventTime | ( | double | pauseTime | ) |
Definition at line 780 of file MIDIPlay.cpp.
References GetNextEventTime(), PlaybackSchedule::mEnvelope, anonymous_namespace{MIDIPlay.h}::MIDIPlay::MidiLoopOffset(), anonymous_namespace{MIDIPlay.h}::MIDIPlay::mMidiLoopPasses, mMIDIPlay, mPlaybackSchedule, PlaybackSchedule::mT0, PlaybackSchedule::mWarpedLength, and PlaybackSchedule::RealDuration().
Referenced by OutputEvent().
bool anonymous_namespace{MIDIPlay.cpp}::Iterator::Unmuted | ( | bool | hasSolo | ) | const |
Definition at line 795 of file MIDIPlay.cpp.
References PlayableTrack::GetMute(), PlayableTrack::GetSolo(), NoteTrack::IsVisibleChan(), mNextEvent, and mNextEventTrack.
Referenced by OutputEvent().
Alg_iterator anonymous_namespace{MIDIPlay.h}::Iterator::it { nullptr, false } |
Definition at line 67 of file MIDIPlay.h.
Referenced by GetNextEvent(), Iterator(), OutputEvent(), and ~Iterator().
MIDIPlay& anonymous_namespace{MIDIPlay.h}::Iterator::mMIDIPlay |
Definition at line 66 of file MIDIPlay.h.
Referenced by GetNextEvent(), OutputEvent(), and UncorrectedMidiEventTime().
Alg_event* anonymous_namespace{MIDIPlay.h}::Iterator::mNextEvent = nullptr |
The next event to play (or null)
Definition at line 69 of file MIDIPlay.h.
Referenced by GetNextEvent(), GetNextEventTime(), OutputEvent(), Prime(), and Unmuted().
|
private |
Real time at which the next event should be output, measured in seconds. Note that this could be a note's time+duration for note offs.
Definition at line 80 of file MIDIPlay.h.
Referenced by GetNextEvent(), and GetNextEventTime().
NoteTrack* anonymous_namespace{MIDIPlay.h}::Iterator::mNextEventTrack = nullptr |
Track of next event.
Definition at line 72 of file MIDIPlay.h.
Referenced by GetNextEvent(), OutputEvent(), and Unmuted().
bool anonymous_namespace{MIDIPlay.h}::Iterator::mNextIsNoteOn = false |
Is the next event a note-on?
Definition at line 75 of file MIDIPlay.h.
Referenced by GetNextEvent(), and OutputEvent().
const PlaybackSchedule& anonymous_namespace{MIDIPlay.h}::Iterator::mPlaybackSchedule |
Definition at line 65 of file MIDIPlay.h.
Referenced by GetNextEvent(), OutputEvent(), and UncorrectedMidiEventTime().