[AD] OSX qtmidi.m build failure fix |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
This is my first attempt at flagging something as broken and
supplying a patch to fix it. If I improperly followed procedure,
please let me know.
When building Allegro for MacOS X from the 4.2 branch (revision 5777)
the following errors occur:
src/macosx/qtmidi.m: In function 'osx_midi_init':
src/macosx/qtmidi.m:128: error: request for member 'bigEndianValue'
in something not a structure or union
src/macosx/qtmidi.m:129: error: request for member 'bigEndianValue'
in something not a structure or union
Below is a diff of a fix that remedies the problem. Testing may be
required, as I'm not sure exactly what should be tested to ensure it
does everything correctly. My poor test consisted of running exmidi
and verifying that it properly plays a midi file.
-Jay
===================================================================
--- src/macosx/qtmidi.m (revision 5777)
+++ src/macosx/qtmidi.m (working copy)
@@ -125,8 +125,8 @@
voice[i].vol = -1;
voice[i].pan = -1;
memset(¬e_request, 0, sizeof(note_request));
- note_request.info.polyphony.bigEndianValue = EndianU16_NtoB(8);
- note_request.info.typicalPolyphony.bigEndianValue =
EndianS32_NtoB(X2Fix(1.0));
+ *(short *)(¬e_request.info.polyphony) = EndianU16_NtoB(8);
+ *(long *)(¬e_request.info.typicalPolyphony) =
EndianS32_NtoB(X2Fix(1.0));
result = NAStuffToneDescription(note_allocator, 1,
¬e_request.tone);
result |= NANewNoteChannel(note_allocator, ¬e_request,
&voice[i].channel);
result |= NAResetNoteChannel(note_allocator, voice[i].channel);