aboutsummaryrefslogtreecommitdiff
path: root/backends/midi/coreaudio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/midi/coreaudio.cpp')
-rw-r--r--backends/midi/coreaudio.cpp22
1 files changed, 9 insertions, 13 deletions
diff --git a/backends/midi/coreaudio.cpp b/backends/midi/coreaudio.cpp
index c79454652d..e058e96f6f 100644
--- a/backends/midi/coreaudio.cpp
+++ b/backends/midi/coreaudio.cpp
@@ -178,22 +178,18 @@ void MidiDriver_CORE::send(uint32 b) {
}
void MidiDriver_CORE::sysEx(const byte *msg, uint16 length) {
- assert(_auGraph != NULL);
+ unsigned char buf[256];
- // Add SysEx frame if missing
- byte *buf = 0;
- if (*msg != 0xF0) {
- buf = (byte *)malloc(length + 2);
- buf[0] = 0xF0;
- memcpy(buf+1, msg, length);
- buf[length+1] = 0xF7;
- msg = buf;
- length += 2;
- }
+ assert(length + 2 <= 256);
+ assert(_auGraph != NULL);
- MusicDeviceSysEx(_synth, msg, length);
+ // Add SysEx frame
+ buf[0] = 0xF0;
+ memcpy(buf + 1, msg, length);
+ buf[length + 1] = 0xF7;
- free(buf);
+ // Send it
+ MusicDeviceSysEx(_synth, buf, length+2);
}
MidiDriver *MidiDriver_CORE_create() {