[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] reading an array from lang to C
Hi James,
Here is some code that attempts to implement sysex output.
It appears that I am not successfully reading the Int8Array that is
the sysex packet prSendsysex. What am I doing wrong?
void sendsysex(MIDIEndpointRef dest, int size, Byte* data);
void sendsysex(MIDIEndpointRef dest, int size, Byte* data)
{
MIDISysexSendRequest mpktlist;
MIDISysexSendRequest *pk = &mpktlist;
pk -> destination = dest;
pk -> data = data;
pk -> bytesToSend = size;
MIDISendSysex(pk);
}
int prSendSysex(VMGlobals *g, int numArgsPushed);
int prSendSysex(VMGlobals *g, int numArgsPushed)
{
int err, uid, size;
PyrInt8Array* packet = g->sp->uob;
size = packet->size;
Byte data[size];
memcpy(data,packet->b, size);
PyrSlot *u = g->sp - 1;
err = slotIntVal(u, &uid);
if (err) return err;
MIDIEndpointRef dest;
MIDIObjectType mtype;
MIDIObjectFindByUniqueID(uid, (MIDIObjectRef*)&dest, &mtype);
if (mtype != kMIDIObjectType_Destination) return errFailed;
if (!dest) return errFailed;
sendsysex(dest, size, data);
return errNone;
}
// in the lang: +MIDIOut { sysex { arg uid, Int8Array; _SendSysex } }