This serie mainly tackles the playback of wave tracks with loops. Current code had to be improved as: - loop playback doesn't require setting the loop start/end points: leaving them at 0 mean playing the whole segment, - moreover, the length (at least for wave tracks) of the segment is not used. Instead, the duration of stamped/posted tracks is used instead. - even forcing a length on segment isn't taken into account (tested locally, but not included in the current tests). - implemented it by creating the graph internal to segment state and gathering relevant information on the fly. There's no indication it's done this exact way on native, but at least tests for time of track playback are identical.
Notes: - only changed the track waves, future work will require equivalent testings at least on MIDI sequences.
-- v2: dmime: Use sent duration in loop's playback. dmime: Generate track flags while in loop. dmime: Add IDirectMusicGraph interface to segment state. dmime: Add tests about segment state's graph interface. dmime: Fully implement IDirectMusicSegmentState::GetRepeats().