|
@@ -48,20 +48,27 @@ export class VoicePlaybackData {
|
|
|
this.dueEntries.clear();
|
|
|
|
|
|
if (!this.ParentVoice.Audible) {
|
|
|
+ this.playbackIndex = 0;
|
|
|
return undefined;
|
|
|
}
|
|
|
|
|
|
+ let entryFound: boolean = false;
|
|
|
for (let i: number = this.playbackIndex; i < this.playbackEntries.length; i++) {
|
|
|
const entry: { enrolledTimestamp: Fraction, playbackEntry: PlaybackEntry } = this.playbackEntries[i];
|
|
|
|
|
|
if (entry.playbackEntry.ParentVoiceEntry.ParentSourceStaffEntry.AbsoluteTimestamp.RealValue > absoluteTimestamp.RealValue) {
|
|
|
this.nextEntryTimestamp = entry.enrolledTimestamp;
|
|
|
this.playbackIndex = Math.max(0, i - 1);
|
|
|
-
|
|
|
+ entryFound = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // fix for starting from last note playing all notes (#28 osmd-extended):
|
|
|
+ if (!entryFound && this.playbackEntries.length > 0) {
|
|
|
+ this.playbackIndex = this.playbackEntries.length - 1;
|
|
|
+ }
|
|
|
+
|
|
|
return this.nextEntryTimestamp;
|
|
|
}
|
|
|
|
|
@@ -72,6 +79,7 @@ export class VoicePlaybackData {
|
|
|
return undefined;
|
|
|
}
|
|
|
|
|
|
+ // TODO if playback is paused and the cursor set to the last note in Beethoven - Geliebte, there are 5 playback entries.
|
|
|
for (let i: number = this.playbackIndex; i < this.playbackEntries.length; i++) {
|
|
|
const entry: { enrolledTimestamp: Fraction, playbackEntry: PlaybackEntry } = this.playbackEntries[i];
|
|
|
|