[Media_api] Windows midiOutLongMsg strangeness
Ben Allison
benski at winamp.com
Thu Dec 21 09:17:25 PST 2006
Roger,
Did you unprepare (midiOutUnprepareHeader) first? If the MIDIHDR that was
passed in was already prepared, you'll need to do this. The MIDIHDR data
structure stores a bool to indicate whether or not it's already been
prepared. If it's been prepared already, midiOutPrepareHeader exits
immediately without doing anything (or at least the documentation suggests
so).
-Ben Allison
> Ben,
> That's a good idea, but putting midiOutPrepareHeader() before or
> after the modifications to the MIDIHDR makes no difference, at least in
> my tests. So with midiOutPrepareHeader() in place, sysexs sends to MIDI
> Yoke virtual midi ports only work if I copy the sysex message
> (hdr->lpData) to a freshly allocated block on the heap. Sysex sends to
> my MidiMan 1x1 interface work (at least in my latest tests) using the
> same code but without the memory copy. -Roger
>
> > When you change where lpData points to, you fiddle with whatever
> "magic"
> > happens you call midiOutPrepareHeader or midiInPrepareHeader.
>
More information about the media_api
mailing list