Sorry, didn't mean to sign-off on this, I pushed the wrong button in my mail client... On Mon, Jul 09, 2018 at 09:39:56AM -0500, Andrew Eikum wrote:
@@ -1178,8 +1181,11 @@ start_header:
/* do we have to wait ? */ if (me->dwDeltaTime) { + DWORD delta; EnterCriticalSection(&lpMidiStrm->lock); - lpMidiStrm->dwPositionMS += MMSYSTEM_MidiStream_Convert(lpMidiStrm, me->dwDeltaTime); + delta = lpMidiStrm->remainder + MMSYSTEM_MidiStream_Convert(lpMidiStrm, me->dwDeltaTime); + lpMidiStrm->dwPositionMS += delta / 1000; + lpMidiStrm->remainder = delta % 1000; lpMidiStrm->dwPulses += me->dwDeltaTime; LeaveCriticalSection(&lpMidiStrm->lock);
Instead of storing the remainder in a separate variable, does it make sense to change the units of dwPositionMS to microseconds? Andrew