View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0035750||Packages||Packages||public||2019-06-22 08:49||2019-06-22 10:35|
|Product Version||2.0.3 (SVN)|
|Summary||0035750: MidiPacket and MidiPacketList Size if differnece between carbon and cocoa.|
|Description||WHen using CoreMidi services cia MidiService; all works fine under Carbon; as the STructure of The Midi Packet matches the data stream.|
When the same code is used when using 64bot cocoa; then the data being received into the packet is corrupted and invalid.
After checking the Size of the Packet Record is larger when running under cocoa.
The record is 268 bytes under carbon; but 272bytes when compiled for cocoa.
Sorroundinng the Definition with
Appears to solve the problem; but need to check for any knock on effects.
In MidiServices around line 565
MIDIPacket = record
data: packed array [0..255] of Byte;
and around midipacketlist
MIDIPacketList = record
packet: array [0..0] of MIDIPacket;
|Tags||No tags attached.|
|Fixed in Revision|
Packrecords 4 is wrong as I already explained on the forum. Should be packrecords 1.
The issue at hand is simply a natural alignment issue if the pack size is wrong.
If the pack size is one, the records are equal on all platforms.
Midi is a streaming protocol and does not allow slack space.
Anything else is misinformation.
On the forum I provided a link to the official midi specification, just in case.
This is not a bug, but programmer error.
|2019-06-22 08:49||josh||New Issue|
|2019-06-22 10:22||Thaddy de Koning||Note Added: 0116831|
|2019-06-22 10:23||Thaddy de Koning||Note Edited: 0116831||View Revisions|
|2019-06-22 10:24||Thaddy de Koning||Note Edited: 0116831||View Revisions|
|2019-06-22 10:34||Thaddy de Koning||Note Edited: 0116831||View Revisions|
|2019-06-22 10:35||Thaddy de Koning||Note Edited: 0116831||View Revisions|