EXPORT(sqInt) primitiveSoundInsertSamples(void) { sqInt framesPlayed; sqInt frameCount; usqInt *buf; sqInt leadTime; sqInt _return_value; frameCount = interpreterProxy->stackIntegerValue(2); interpreterProxy->success(interpreterProxy->isWords(interpreterProxy->stackValue(1))); buf = ((unsigned *) (interpreterProxy->firstIndexableField(interpreterProxy->stackValue(1)))); leadTime = interpreterProxy->stackIntegerValue(0); if (interpreterProxy->failed()) { return null; } interpreterProxy->success(frameCount <= (interpreterProxy->slotSizeOf((oopForPointer( buf ) - BASE_HEADER_SIZE)))); if (!(interpreterProxy->failed())) { framesPlayed = snd_InsertSamplesFromLeadTime(frameCount, (void *)buf, leadTime); interpreterProxy->success(framesPlayed >= 0); } _return_value = interpreterProxy->positive32BitIntegerFor(framesPlayed); if (interpreterProxy->failed()) { return null; } interpreterProxy->popthenPush(4, _return_value); return null; }
primitiveSoundInsertSamples(void) { // SoundPlugin>>#primitiveSoundInsertSamples unsigned *buf; sqInt frameCount; sqInt framesPlayed; sqInt leadTime; sqInt _return_value; frameCount = stackIntegerValue(2); success(isWords(stackValue(1))); buf = ((unsigned *) (firstIndexableField(stackValue(1)))); leadTime = stackIntegerValue(0); if (failed()) { return null; } success(frameCount <= (slotSizeOf(((sqInt)(long)(buf) - BaseHeaderSize)))); if (!(failed())) { framesPlayed = snd_InsertSamplesFromLeadTime(frameCount, (void *)buf, leadTime); success(framesPlayed >= 0); } _return_value = positive32BitIntegerFor(framesPlayed); if (failed()) { return null; } popthenPush(4, _return_value); return null; }