int prNetAddr_SendMsg(VMGlobals *g, int numArgsPushed) { PyrSlot* netAddrSlot = g->sp - numArgsPushed + 1; PyrSlot* args = netAddrSlot + 1; big_scpacket packet; int numargs = numArgsPushed - 1; makeSynthMsgWithTags(&packet, args, numargs); //for (int i=0; i<packet.size()/4; i++) post("%d %08X\n", i, packet.buf[i]); return netAddrSend(netAddrSlot->uo, packet.size(), (char*)packet.buf); }
int prNetAddr_SendMsg(VMGlobals *g, int numArgsPushed) { PyrSlot* netAddrSlot = g->sp - numArgsPushed + 1; PyrSlot* args = netAddrSlot + 1; big_scpacket packet; int numargs = numArgsPushed - 1; int error = makeSynthMsgWithTags(&packet, args, numargs); if (error != errNone) return error; //for (int i=0; i<packet.size()/4; i++) post("%d %p\n", i, packet.buf[i]); return netAddrSend(slotRawObject(netAddrSlot), packet.size(), (char*)packet.buf); }
int prNetAddr_SendRaw(VMGlobals *g, int numArgsPushed) { PyrSlot* netAddrSlot = g->sp - 1; PyrSlot* arraySlot = g->sp; PyrObject* netAddrObj = netAddrSlot->uo; if (!IsObj(arraySlot) || !isKindOf(arraySlot->uo, class_rawarray)) { error("sendRaw arg must be a kind of RawArray.\n"); return errWrongType; } PyrObject *array = arraySlot->uo; char *bufptr = (char*)array->slots; int32 msglen = array->size * gFormatElemSize[array->obj_format]; return netAddrSend(netAddrObj, msglen, bufptr, false); }
int prNetAddr_SendBundle(VMGlobals *g, int numArgsPushed) { PyrSlot* netAddrSlot = g->sp - numArgsPushed + 1; PyrSlot* args = netAddrSlot + 1; big_scpacket packet; double time; int err = slotDoubleVal(args, &time); if (!err) { time += g->thread->seconds.uf; SetFloat(args, time); } int numargs = numArgsPushed - 1; makeSynthBundle(&packet, args, numargs, true); //for (int i=0; i<packet.size()/4; i++) post("%d %08X\n", i, packet.buf[i]); return netAddrSend(netAddrSlot->uo, packet.size(), (char*)packet.buf); }