aboutsummaryrefslogtreecommitdiff
path: root/sound/mididrv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sound/mididrv.cpp')
-rw-r--r--sound/mididrv.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/sound/mididrv.cpp b/sound/mididrv.cpp
index 3623f34040..2400248fae 100644
--- a/sound/mididrv.cpp
+++ b/sound/mididrv.cpp
@@ -219,9 +219,21 @@ void MidiDriver_WIN::close() {
}
void MidiDriver_WIN::send(uint32 b) {
+ union {
+ DWORD dwData;
+ BYTE bData[4];
+ } u;
+
if (_mode != MO_SIMPLE)
error("MidiDriver_WIN:send called but driver is not in simple mode");
- check_error(midiOutShortMsg(_mo, b));
+
+ u.bData[3] = (byte)((b & 0xFF000000) >> 24);
+ u.bData[2] = (byte)((b & 0x00FF0000) >> 16);
+ u.bData[1] = (byte)((b & 0x0000FF00) >> 8);
+ u.bData[0] = (byte)(b & 0x000000FF);
+
+ //printMidi(u.bData[0], u.bData[1], u.bData[2], u.bData[3]);
+ check_error(midiOutShortMsg(_mo, u.dwData));
}
void MidiDriver_WIN::pause(bool pause) {