#include <multitrack.h>
Public Member Functions | |
MIDIMultiTrackIteratorState (int num_tracks_=64) | |
MIDIMultiTrackIteratorState (const MIDIMultiTrackIteratorState &m) | |
virtual | ~MIDIMultiTrackIteratorState () |
const MIDIMultiTrackIteratorState & | operator= (const MIDIMultiTrackIteratorState &m) |
int | GetNumTracks () |
int | GetCurEventTrack () |
MIDIClockTime | GetCurrentTime () |
void | Reset () |
int | FindTrackOfFirstEvent () |
Public Attributes | |
MIDIClockTime | cur_time |
int | cur_event_track |
int | num_tracks |
int * | next_event_number |
MIDIClockTime * | next_event_time |
|
Definition at line 119 of file jdkmidi_multitrack.cpp. References cur_event_track, jdkmidi::MIDIClockTime, next_event_number, next_event_time, num_tracks, and Reset().
00120 { 00121 num_tracks = num_tracks_; 00122 00123 cur_event_track=0; 00124 00125 next_event_number = new int [num_tracks]; 00126 next_event_time = new MIDIClockTime [num_tracks]; 00127 00128 Reset(); 00129 00130 } |
|
Definition at line 132 of file jdkmidi_multitrack.cpp. References cur_event_track, cur_time, jdkmidi::MIDIClockTime, next_event_number, next_event_time, and num_tracks.
00133 { 00134 num_tracks = m.num_tracks; 00135 cur_event_track = m.cur_event_track; 00136 next_event_number = new int [num_tracks]; 00137 next_event_time = new MIDIClockTime [num_tracks]; 00138 cur_time = m.cur_time; 00139 00140 for( int i=0; i<num_tracks; ++i ) 00141 { 00142 next_event_number[i] = m.next_event_number[i]; 00143 next_event_time[i] = m.next_event_time[i]; 00144 } 00145 00146 } |
|
Definition at line 148 of file jdkmidi_multitrack.cpp. References next_event_number, and next_event_time.
00149 { 00150 delete [] next_event_number; 00151 delete [] next_event_time; 00152 } |
|
Definition at line 189 of file jdkmidi_multitrack.cpp. References cur_event_track, cur_time, jdkmidi::MIDIClockTime, next_event_number, next_event_time, and num_tracks.
00190 { 00191 MIDIClockTime minimum_time=0xffffffff; 00192 int minimum_time_track=-1; 00193 00194 00195 // go through all tracks and find the track with the smallest 00196 // event time. 00197 00198 for( int j=0; j<num_tracks; ++j ) 00199 { 00200 int i=(j+cur_event_track+1) % num_tracks; 00201 00202 // skip any tracks that have a current event number less than 0 - these are 00203 // finished already 00204 00205 00206 if( next_event_number[i]>=0 && next_event_time[i]<minimum_time ) 00207 { 00208 minimum_time = next_event_time[i]; 00209 minimum_time_track = i; 00210 } 00211 } 00212 00213 // set cur_event_track to -1 if there are no more events left 00214 cur_event_track = minimum_time_track; 00215 cur_time = minimum_time; 00216 00217 return cur_event_track; 00218 } |
|
Definition at line 94 of file multitrack.h. References cur_event_track.
00094 { return cur_event_track; } |
|
Definition at line 95 of file multitrack.h. References cur_time, and jdkmidi::MIDIClockTime.
00095 { return cur_time; } |
|
Definition at line 93 of file multitrack.h. References num_tracks.
00093 { return num_tracks; } |
|
Definition at line 154 of file jdkmidi_multitrack.cpp. References cur_event_track, cur_time, jdkmidi::MIDIClockTime, next_event_number, next_event_time, and num_tracks.
00155 { 00156 if( num_tracks != m.num_tracks ) 00157 { 00158 delete [] next_event_number; 00159 delete [] next_event_time; 00160 00161 num_tracks = m.num_tracks; 00162 next_event_number = new int [num_tracks]; 00163 next_event_time = new MIDIClockTime [num_tracks]; 00164 } 00165 00166 cur_time = m.cur_time; 00167 cur_event_track = m.cur_event_track; 00168 00169 for( int i=0; i<num_tracks; ++i ) 00170 { 00171 next_event_number[i] = m.next_event_number[i]; 00172 next_event_time[i] = m.next_event_time[i]; 00173 } 00174 00175 return *this; 00176 } |
|
Definition at line 178 of file jdkmidi_multitrack.cpp. References cur_event_track, cur_time, next_event_number, next_event_time, and num_tracks.
00179 { 00180 cur_time = 0; 00181 cur_event_track = 0; 00182 for( int i=0; i<num_tracks; ++i ) 00183 { 00184 next_event_number[i] = 0; 00185 next_event_time[i] = 0xffffffff; 00186 } 00187 } |
|
Definition at line 101 of file multitrack.h. |
|
Definition at line 100 of file multitrack.h. |
|
Definition at line 103 of file multitrack.h. |
|
Definition at line 104 of file multitrack.h. |
|
Definition at line 102 of file multitrack.h. |