42 lines
993 B
C
42 lines
993 B
C
#include <ultra64.h>
|
|
#include "synthInternals.h"
|
|
|
|
Acmd *alSavePull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset,
|
|
Acmd *p)
|
|
|
|
{
|
|
Acmd *ptr = p;
|
|
ALSave *f = (ALSave *)filter;
|
|
ALFilter *source = f->filter.source;
|
|
|
|
ptr = (*source->handler)(source, outp, outCount, sampleOffset, ptr);
|
|
|
|
aSetBuffer (ptr++, 0, 0, 0, outCount<<1);
|
|
aInterleave(ptr++, AL_MAIN_L_OUT, AL_MAIN_R_OUT);
|
|
aSetBuffer (ptr++, 0, 0, 0, outCount<<2);
|
|
aSaveBuffer(ptr++, f->dramout);
|
|
return ptr;
|
|
}
|
|
|
|
s32 alSaveParam(void *filter, s32 paramID, void *param)
|
|
{
|
|
ALSave *a = (ALSave *) filter;
|
|
ALFilter *f = (ALFilter *) filter;
|
|
s32 pp = (s32) param;
|
|
|
|
switch (paramID) {
|
|
case (AL_FILTER_SET_SOURCE):
|
|
f->source = (ALFilter *) param;
|
|
break;
|
|
|
|
case (AL_FILTER_SET_DRAM):
|
|
a->dramout = pp;
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
return 0;
|
|
|
|
}
|