From 65a86d8b3df60379352a3195a4c9827da68b8c77 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 13 Dec 2015 20:01:57 +0200 Subject: [PATCH] Fix 64-bit MIDI out detection bug. --- od-win32/parser.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/od-win32/parser.cpp b/od-win32/parser.cpp index ff646ef4..f2824b86 100644 --- a/od-win32/parser.cpp +++ b/od-win32/parser.cpp @@ -1569,11 +1569,15 @@ int enummidiports (void) MIDIOUTCAPS midiOutCaps; MIDIINCAPS midiInCaps; int i, j, num, total; + int innum, outnum; - write_log (_T("MIDI port enumeration..\n")); - num = midiOutGetNumDevs (); + outnum = midiOutGetNumDevs(); + innum = midiInGetNumDevs(); + write_log (_T("MIDI port enumeration.. IN=%d OUT=%d\n"), innum, outnum); + + num = outnum; for (i = 0; i < num + 1 && i < MAX_MIDI_PORTS - 1; i++) { - MMRESULT r = midiOutGetDevCaps (i - 1, &midiOutCaps, sizeof (midiOutCaps)); + MMRESULT r = midiOutGetDevCaps ((UINT)(i - 1), &midiOutCaps, sizeof (midiOutCaps)); if (r != MMSYSERR_NOERROR) { num = i; break; @@ -1594,8 +1598,7 @@ int enummidiports (void) } } } - - num = midiInGetNumDevs (); + num = innum; for (i = 0; i < num && i < MAX_MIDI_PORTS - 1; i++) { if (midiInGetDevCaps (i, &midiInCaps, sizeof (midiInCaps)) != MMSYSERR_NOERROR) { num = i; -- 2.47.3