Windows MMSYSTEM error reclassification
|Reported by:||SF/jamieson630||Owned by:||SF/ender|
When running under the -ewindows option, SCUMMVM preiodically fills up the Windows MMSYSTEM MIDI stream buffer, resulting in the following error:
"MMSYSTEM067 The port is transmitting data to the device. Wait until the data has been transmitted, and then try again."
This problem was observed in DOTT, occurring several times during the Chron-o-John "hyperspace" sequence toward the beginning of the game.
This is treated as a fatal error by SCUMMVM, resulting in an immediate program termination. In fact, this is a non-fatal error, as are probably all MMSYSTEM errors. (In other words, SCUMMVM will not become crash or become unstable if it continues to execute beyond an error generated by MMSYSTEM.)
Buffer fills seem to occur in areas where a lot of jumps between music resources take place, and frequent part changes means that the occasional drop of a MIDI message does not noticeably influence the resulting audio.
This patch issues warning() calls for MMSYSTEM errors rather than error() calls, thus allowing games running under the -ewindows option to still be playable without unnecessary bailouts.
There's also an indent correction to a function prototype, just because it was getting on my nerves. ;-)
Ticket imported from: #610257. Ticket imported from: patches/159.