core1/done/audio/n_seqplayer.c done

This commit is contained in:
Banjo Kazooie
2022-10-10 16:53:27 -05:00
parent 9a51651a8e
commit 080fd559fb
3 changed files with 92 additions and 117 deletions

View File

@@ -123,12 +123,12 @@ Acmd *n_alAudioFrame(Acmd *cmdList, s32 *cmdLen,
* Sequence Player stuff
*/
typedef struct {
struct N_ALVoice_s *voice;
N_ALVoice *voice;
} N_ALNoteEvent;
typedef struct {
struct N_ALVoice_s *voice;
N_ALVoice *voice;
ALMicroTime delta;
u8 vol;
} N_ALVolumeEvent;

View File

@@ -10,7 +10,6 @@ extern void func_8033F000(const char *, const char *, int);
#define matching_assert(EX, F, L) assert(EX)
#else
#define LINE(line_num) line_num
#define FILE(file_name) "file_name"
#ifdef __ANSI_CPP__
#define FILE(file_name) # file_name
#else
@@ -25,5 +24,4 @@ extern void func_8033F000(const char *, const char *, int);
#endif
#endif
#endif

View File

@@ -8,30 +8,30 @@
#define KILL_TIME 50000
void __postNextSeqEvent(ALSeqPlayer *seqp);
ALVoiceState *__mapVoice(ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel);
void __unmapVoice(ALSeqPlayer *seqp, ALVoice *voice) ;
ALVoiceState *__lookupVoice(ALSeqPlayer *seqp, u8 key, u8 channel);
ALSound *__lookupSound(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan);
ALSound *__lookupSoundQuick(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan);
s16 __vsVol(N_ALVoiceState *vs, ALSeqPlayer *seqp);
ALMicroTime __vsDelta(ALVoiceState *vs, ALMicroTime t);
ALPan __vsPan(ALVoiceState *vs, ALSeqPlayer *seqp);
void __seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime deltaTime);
char __voiceNeedsNoteKill (ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTime);
void __initFromBank(ALSeqPlayer *seqp, ALBank *b);
void __setInstChanState(ALSeqPlayer *seqp, ALInstrument *inst, s32 chan);
void func_80261348(ALSeqPlayer *seqp, s32 chan); //__resetPerfChanState
void __initChanState(ALSeqPlayer *seqp);
void __seqpStopOsc(ALSeqPlayer *seqp, ALVoiceState *vs);
void func_80263850(ALSeq *, ALEvent *);
void __postNextSeqEvent(N_ALSeqPlayer *seqp);
N_ALVoiceState *__mapVoice(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel);
void __unmapVoice(N_ALSeqPlayer *seqp, N_ALVoice *voice) ;
N_ALVoiceState *__lookupVoice(N_ALSeqPlayer *seqp, u8 key, u8 channel);
ALSound *__lookupSound(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan);
ALSound *__lookupSoundQuick(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan);
s16 __vsVol(N_ALVoiceState *vs, N_ALSeqPlayer *seqp);
ALMicroTime __vsDelta(N_ALVoiceState *vs, ALMicroTime t);
ALPan __vsPan(N_ALVoiceState *vs, N_ALSeqPlayer *seqp);
void __seqpReleaseVoice(N_ALSeqPlayer *seqp, N_ALVoice *voice, ALMicroTime deltaTime);
char __voiceNeedsNoteKill (N_ALSeqPlayer *seqp, N_ALVoice *voice, ALMicroTime killTime);
void __initFromBank(N_ALSeqPlayer *seqp, ALBank *b);
void __setInstChanState(N_ALSeqPlayer *seqp, ALInstrument *inst, s32 chan);
void func_80261348(N_ALSeqPlayer *seqp, s32 chan); //__resetPerfChanState
void __initChanState(N_ALSeqPlayer *seqp);
void __seqpStopOsc(N_ALSeqPlayer *seqp, N_ALVoiceState *vs);
void func_80263850(ALSeq *, N_ALEvent *);
static ALMicroTime __seqpVoiceHandler(void *node);
static void func_80261A94(ALSeqPlayer *seqp, ALEvent *event); //__handleMIDIMsg
static void func_802617A0(ALSeqPlayer *seqp, ALEvent *event); //__handleMetaMsg
static void __handleNextSeqEvent(ALSeqPlayer *seqp);
static void __setUsptFromTempo(ALSeqPlayer *seqp, f32 tempo); /* sct 1/8/96 */
static void func_80261A94(N_ALSeqPlayer *seqp, N_ALEvent *event); //__handleMIDIMsg
static void func_802617A0(N_ALSeqPlayer *seqp, N_ALEvent *event); //__handleMetaMsg
static void __handleNextSeqEvent(N_ALSeqPlayer *seqp);
static void __setUsptFromTempo(N_ALSeqPlayer *seqp, f32 tempo); /* sct 1/8/96 */
/*
* Sequence Player public functions
@@ -39,9 +39,9 @@ static void __setUsptFromTempo(ALSeqPlayer *seqp, f32 tempo); /* sct 1/8/96 */
void n_alSeqpNew(N_ALSeqPlayer *seqp, ALSeqpConfig *c)
{
s32 i;
ALEventListItem *items;
ALVoiceState *vs;
ALVoiceState *voices;
N_ALEventListItem *items;
N_ALVoiceState *vs;
N_ALVoiceState *voices;
ALHeap *hp = c->heap;
/*
@@ -49,7 +49,7 @@ void n_alSeqpNew(N_ALSeqPlayer *seqp, ALSeqpConfig *c)
*/
seqp->bank = 0;
seqp->target = NULL;
seqp->drvr = &n_syn->head;
seqp->drvr = (N_ALSynth *)&n_syn->head;
seqp->chanMask = 0xff;
seqp->uspt = 488;
seqp->nextDelta = 0;
@@ -77,7 +77,7 @@ void n_alSeqpNew(N_ALSeqPlayer *seqp, ALSeqpConfig *c)
/*
* init the voice state array
*/
voices = alHeapAlloc(hp, c->maxVoices, sizeof(ALVoiceState));
voices = alHeapAlloc(hp, c->maxVoices, sizeof(N_ALVoiceState));
seqp->vFreeList = 0;
for (i = 0; i < c->maxVoices; i++) {
vs = &voices[i];
@@ -91,8 +91,8 @@ void n_alSeqpNew(N_ALSeqPlayer *seqp, ALSeqpConfig *c)
/*
* init the event queue
*/
items = alHeapAlloc(hp, c->maxEvents, sizeof(ALEventListItem));
alEvtqNew(&seqp->evtq, items, c->maxEvents);
items = alHeapAlloc(hp, c->maxEvents, sizeof(N_ALEventListItem));
alEvtqNew(&seqp->evtq, (ALEventListItem *)items, c->maxEvents);
/*
* add ourselves to the driver
@@ -108,11 +108,11 @@ void n_alSeqpNew(N_ALSeqPlayer *seqp, ALSeqpConfig *c)
*************************************************************/
ALMicroTime __seqpVoiceHandler(void *node)
{
ALSeqPlayer *seqp = (ALSeqPlayer *) node;
ALEvent evt;
ALVoice *voice;
N_ALSeqPlayer *seqp = (N_ALSeqPlayer *) node;
N_ALEvent evt;
N_ALVoice *voice;
ALMicroTime delta;
ALVoiceState *vs;
N_ALVoiceState *vs;
void *oscState;
f32 oscValue;
u8 chan;
@@ -134,15 +134,15 @@ ALMicroTime __seqpVoiceHandler(void *node)
voice = seqp->nextEvent.msg.note.voice;
n_alSynStopVoice(voice);
n_alSynFreeVoice(voice);
vs = (ALVoiceState *)voice->clientPrivate;
vs = (N_ALVoiceState *)voice->clientPrivate;
if(vs->flags)
__seqpStopOsc((ALSeqPlayer*)seqp,vs);
__seqpStopOsc((N_ALSeqPlayer*)seqp,vs);
__unmapVoice(seqp, voice);
break;
case (AL_SEQP_ENV_EVT):
voice = seqp->nextEvent.msg.vol.voice;
vs = (ALVoiceState *)voice->clientPrivate;
vs = (N_ALVoiceState *)voice->clientPrivate;
if (vs->envPhase == AL_PHASE_ATTACK)
vs->envPhase = AL_PHASE_DECAY;
@@ -158,12 +158,11 @@ ALMicroTime __seqpVoiceHandler(void *node)
oscState = seqp->nextEvent.msg.osc.oscState;
delta = (*seqp->updateOsc)(oscState,&oscValue);
vs->tremelo = (u8)oscValue;
n_alSynSetVol(&vs->voice, __vsVol(vs,seqp),
__vsDelta(vs,seqp->curTime));
n_alSynSetVol(&vs->voice, __vsVol(vs,seqp), __vsDelta(vs,seqp->curTime));
evt.type = AL_TREM_OSC_EVT;
evt.msg.osc.vs = vs;
evt.msg.osc.oscState = oscState;
alEvtqPostEvent(&seqp->evtq, &evt, delta);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, delta);
break;
case (AL_VIB_OSC_EVT):
@@ -178,7 +177,7 @@ ALMicroTime __seqpVoiceHandler(void *node)
evt.msg.osc.vs = vs;
evt.msg.osc.oscState = oscState;
evt.msg.osc.chan = chan;
alEvtqPostEvent(&seqp->evtq, &evt, delta);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, delta);
break;
case (AL_SEQP_MIDI_EVT):
@@ -205,8 +204,8 @@ ALMicroTime __seqpVoiceHandler(void *node)
n_alSynStopVoice(&vs->voice);
n_alSynFreeVoice(&vs->voice);
if(vs->flags)
__seqpStopOsc((ALSeqPlayer*)seqp,vs);
__unmapVoice((ALSeqPlayer*)seqp, &vs->voice);
__seqpStopOsc((N_ALSeqPlayer*)seqp,vs);
__unmapVoice((N_ALSeqPlayer*)seqp, &vs->voice);
}
seqp->curTime = 0;
@@ -252,7 +251,7 @@ ALMicroTime __seqpVoiceHandler(void *node)
seqp->state = AL_STOPPING;
evt.type = AL_SEQP_STOP_EVT;
alEvtqPostEvent(&seqp->evtq, &evt, AL_EVTQ_END);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, AL_EVTQ_END);
}
break;
@@ -298,7 +297,7 @@ ALMicroTime __seqpVoiceHandler(void *node)
break;
}
seqp->nextDelta = alEvtqNextEvent (&seqp->evtq, &seqp->nextEvent);
seqp->nextDelta = alEvtqNextEvent (&seqp->evtq, (ALEvent *)&seqp->nextEvent);
} while (seqp->nextDelta == 0);
@@ -316,9 +315,9 @@ ALMicroTime __seqpVoiceHandler(void *node)
sct 11/7/95
*/
static void
__handleNextSeqEvent(ALSeqPlayer *seqp)
__handleNextSeqEvent(N_ALSeqPlayer *seqp)
{
ALEvent evt;
N_ALEvent evt;
/* sct 1/5/96 - Do nothing if we don't have a target sequence. */
if (seqp->target == NULL)
@@ -341,7 +340,7 @@ __handleNextSeqEvent(ALSeqPlayer *seqp)
case AL_SEQ_END_EVT:
seqp->state = AL_STOPPING;
evt.type = AL_SEQP_STOP_EVT;
alEvtqPostEvent(&seqp->evtq, &evt, AL_EVTQ_END);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, AL_EVTQ_END);
break;
default:
@@ -350,10 +349,10 @@ __handleNextSeqEvent(ALSeqPlayer *seqp)
}
void func_80261A94(ALSeqPlayer *seqp, ALEvent *event)
void func_80261A94(N_ALSeqPlayer *seqp, N_ALEvent *event)
{
ALVoice *voice;
ALVoiceState *vs;
N_ALVoice *voice;
N_ALVoiceState *vs;
s32 status;
u8 chan;
u8 key;
@@ -362,9 +361,9 @@ void func_80261A94(ALSeqPlayer *seqp, ALEvent *event)
u8 byte2;
ALMIDIEvent *midi = &event->msg.midi;
s16 vol;
ALEvent evt;
N_ALEvent evt;
ALMicroTime deltaTime;
ALVoiceState *vstate;
N_ALVoiceState *vstate;
ALPan pan;
ALFxRef fxref;
@@ -450,7 +449,7 @@ void func_80261A94(ALSeqPlayer *seqp, ALEvent *event)
evt.type = AL_TREM_OSC_EVT;
evt.msg.osc.vs = vstate;
evt.msg.osc.oscState = oscState;
alEvtqPostEvent(&seqp->evtq, &evt, deltaTime);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, deltaTime);
vstate->flags |= 0x01; /* set tremelo flag bit */
}
}
@@ -475,7 +474,7 @@ void func_80261A94(ALSeqPlayer *seqp, ALEvent *event)
evt.msg.osc.vs = vstate;
evt.msg.osc.oscState = oscState;
evt.msg.osc.chan = chan;
alEvtqPostEvent(&seqp->evtq, &evt, deltaTime);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, deltaTime);
vstate->flags |= 0x02; /* set the vibrato flag bit */
}
}
@@ -504,7 +503,7 @@ void func_80261A94(ALSeqPlayer *seqp, ALEvent *event)
evt.msg.vol.delta = sound->envelope->decayTime;
deltaTime = sound->envelope->attackTime;
alEvtqPostEvent(&seqp->evtq, &evt, deltaTime);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, deltaTime);
break;
}
@@ -717,7 +716,7 @@ void func_80261A94(ALSeqPlayer *seqp, ALEvent *event)
}
}
void func_802617A0(ALSeqPlayer *seqp, ALEvent *event)
void func_802617A0(N_ALSeqPlayer *seqp, N_ALEvent *event)
{
ALTempoEvent *tevt = &event->msg.tempo;
ALEvent evt;
@@ -736,9 +735,9 @@ void func_802617A0(ALSeqPlayer *seqp, ALEvent *event)
}
}
ALVoiceState *__mapVoice(ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel)
N_ALVoiceState *__mapVoice(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel)
{
ALVoiceState *vs = seqp->vFreeList;
N_ALVoiceState *vs = seqp->vFreeList;
if (vs) {
@@ -762,10 +761,10 @@ ALVoiceState *__mapVoice(ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel)
return vs;
}
void __unmapVoice(ALSeqPlayer *seqp, ALVoice *voice)
void __unmapVoice(N_ALSeqPlayer *seqp, N_ALVoice *voice)
{
ALVoiceState *prev = 0;
ALVoiceState *vs;
N_ALVoiceState *prev = 0;
N_ALVoiceState *vs;
/*
* we could use doubly linked lists here and save some code and
@@ -796,9 +795,9 @@ void __unmapVoice(ALSeqPlayer *seqp, ALVoice *voice)
#endif
}
ALVoiceState *__lookupVoice(ALSeqPlayer *seqp, u8 key, u8 channel)
N_ALVoiceState *__lookupVoice(N_ALSeqPlayer *seqp, u8 key, u8 channel)
{
ALVoiceState *vs;
N_ALVoiceState *vs;
for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) {
if ((vs->key == key) && (vs->channel == channel) &&
@@ -810,7 +809,7 @@ ALVoiceState *__lookupVoice(ALSeqPlayer *seqp, u8 key, u8 channel)
}
#if 0
ALSound *__lookupSound(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan)
ALSound *__lookupSound(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan)
{
s32 i;
ALInstrument *inst = seqp->chanState[chan].instrument;
@@ -830,7 +829,7 @@ ALSound *__lookupSound(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan)
}
#endif
ALSound *__lookupSoundQuick(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan)
ALSound *__lookupSoundQuick(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan)
{
ALInstrument *inst = seqp->chanState[chan].instrument;
s32 l = 1;
@@ -864,29 +863,7 @@ ALSound *__lookupSoundQuick(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan)
* __vsVol calculates the target volume for the voice based on the
* note on velocity, envelope, sampleVolume and controller.
*/
// s16 __vsVol(ALVoiceState *vs, ALSeqPlayer *seqp)
// {
// u32 t1,t2;
// t1 = (vs->tremelo*vs->velocity*vs->envGain) >> 6;
// t2 = (vs->sound->sampleVolume*seqp->vol*
// seqp->chanState[vs->channel].vol) >> 14;
// t1 *= t2;
// t1 >>= 15;
// return( (s16)t1 );
// }
// s16 __vsVol(ALVoiceState *vs, ALSeqPlayer *seqp) {
// ALChanState *temp_a2;
// temp_a2 = &seqp->chanState[vs->channel];
// return (s16) ((u32) (((s32) (temp_a2->unk9 * vs->tremelo * vs->velocity * vs->envGain) >> 0xD) * ((s32) (temp_a2->vol * vs->sound->sampleVolume * seqp->vol) >> 0xE)) >> 0xF);
// }
s16 __vsVol(N_ALVoiceState *vs, ALSeqPlayer *seqp)
s16 __vsVol(N_ALVoiceState *vs, N_ALSeqPlayer *seqp)
{
u32 t1, t2;
ALChanState *temp_a2;
@@ -898,7 +875,7 @@ s16 __vsVol(N_ALVoiceState *vs, ALSeqPlayer *seqp)
return ((s16)t1);
}
ALMicroTime __vsDelta(ALVoiceState *vs, ALMicroTime t)
ALMicroTime __vsDelta(N_ALVoiceState *vs, ALMicroTime t)
{
/*
* If we are interrupting a previously set envelope segment, we
@@ -916,7 +893,7 @@ ALMicroTime __vsDelta(ALVoiceState *vs, ALMicroTime t)
}
}
ALPan __vsPan(ALVoiceState *vs, ALSeqPlayer *seqp)
ALPan __vsPan(N_ALVoiceState *vs, N_ALSeqPlayer *seqp)
{
s32 tmp;
@@ -938,11 +915,11 @@ s32 seqpSetChannelMask(SEQP *seqp, u16 bitmask);
#endif
void __seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice,
void __seqpReleaseVoice(N_ALSeqPlayer *seqp, N_ALVoice *voice,
ALMicroTime deltaTime)
{
ALEvent evt;
ALVoiceState *vs = (ALVoiceState *)voice->clientPrivate;
N_ALEvent evt;
N_ALVoiceState *vs = (N_ALVoiceState *)voice->clientPrivate;
/*
* if in attack phase, remove all pending volume
@@ -952,13 +929,13 @@ void __seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice,
if (vs->envPhase == AL_PHASE_ATTACK) {
ALLink *thisNode;
ALLink *nextNode;
ALEventListItem *thisItem, *nextItem;
N_ALEventListItem *thisItem, *nextItem;
thisNode = seqp->evtq.allocList.next;
while( thisNode != 0 ) {
nextNode = thisNode->next;
thisItem = (ALEventListItem *)thisNode;
nextItem = (ALEventListItem *)nextNode;
thisItem = (N_ALEventListItem *)thisNode;
nextItem = (N_ALEventListItem *)nextNode;
if (thisItem->evt.type == AL_SEQP_ENV_EVT) {
if(thisItem->evt.msg.vol.voice == voice) {
if( nextItem )
@@ -981,7 +958,7 @@ void __seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice,
evt.type = AL_NOTE_END_EVT;
evt.msg.note.voice = voice;
deltaTime += 0x7D00;
alEvtqPostEvent(&seqp->evtq, &evt, deltaTime);
alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, deltaTime);
}
@@ -1001,11 +978,11 @@ void __seqpReleaseVoice(ALSeqPlayer *seqp, ALVoice *voice,
#define VOICENEEDSNOTEKILL_DEBUG _DEBUG_INTERNAL&&0 /* For debugging voiceNeedsNoteKill routine. */
char __voiceNeedsNoteKill (ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTime)
char __voiceNeedsNoteKill (N_ALSeqPlayer *seqp, N_ALVoice *voice, ALMicroTime killTime)
{
ALLink *thisNode;
ALLink *nextNode;
ALEventListItem *thisItem;
N_ALEventListItem *thisItem;
ALMicroTime itemTime = 0;
char needsNoteKill = TRUE;
@@ -1017,7 +994,7 @@ char __voiceNeedsNoteKill (ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTi
while (thisNode != 0)
{
nextNode = thisNode->next;
thisItem = (ALEventListItem *)thisNode;
thisItem = (N_ALEventListItem *)thisNode;
itemTime += thisItem->delta;
if (thisItem->evt.type == AL_NOTE_END_EVT)
@@ -1026,8 +1003,8 @@ char __voiceNeedsNoteKill (ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTi
{
if (itemTime > killTime)
{
if ((ALEventListItem *)nextNode)
((ALEventListItem *)nextNode)->delta += thisItem->delta;
if ((N_ALEventListItem *)nextNode)
((N_ALEventListItem *)nextNode)->delta += thisItem->delta;
alUnlink(thisNode);
alLink(thisNode, &seqp->evtq.freeList);
}
@@ -1054,7 +1031,7 @@ char __voiceNeedsNoteKill (ALSeqPlayer *seqp, ALVoice *voice, ALMicroTime killTi
void __initFromBank(ALSeqPlayer *seqp, ALBank *b)
void __initFromBank(N_ALSeqPlayer *seqp, ALBank *b)
{
/*
* init the chanState with the default instrument
@@ -1087,7 +1064,7 @@ void __initFromBank(ALSeqPlayer *seqp, ALBank *b)
Currently also gets called when changing sequences.
*/
void __setInstChanState(ALSeqPlayer *seqp, ALInstrument *inst, s32 chan)
void __setInstChanState(N_ALSeqPlayer *seqp, ALInstrument *inst, s32 chan)
{
seqp->chanState[chan].instrument = inst;
seqp->chanState[chan].pan = inst->pan;
@@ -1102,7 +1079,7 @@ void __setInstChanState(ALSeqPlayer *seqp, ALInstrument *inst, s32 chan)
initializing a sequence player.
*/
void func_80261348(ALSeqPlayer *seqp, s32 chan)
void func_80261348(N_ALSeqPlayer *seqp, s32 chan)
{
seqp->chanState[chan].fxId = AL_FX_NONE;
seqp->chanState[chan].fxmix = AL_DEFAULT_FXMIX;
@@ -1119,7 +1096,7 @@ void func_80261348(ALSeqPlayer *seqp, s32 chan)
/*
sct 11/6/95 - Called only when creating a new sequence player.
*/
void __initChanState(ALSeqPlayer *seqp)
void __initChanState(N_ALSeqPlayer *seqp)
{
int i;
@@ -1131,15 +1108,15 @@ void __initChanState(ALSeqPlayer *seqp)
}
void __seqpStopOsc(ALSeqPlayer *seqp, ALVoiceState *vs)
void __seqpStopOsc(N_ALSeqPlayer *seqp, N_ALVoiceState *vs)
{
ALEventListItem *thisNode,*nextNode;
N_ALEventListItem *thisNode,*nextNode;
s16 evtType;
thisNode = (ALEventListItem*)seqp->evtq.allocList.next;
thisNode = (N_ALEventListItem*)seqp->evtq.allocList.next;
while(thisNode)
{
nextNode = (ALEventListItem*)thisNode->node.next;
nextNode = (N_ALEventListItem*)thisNode->node.next;
evtType = thisNode->evt.type;
if(evtType == AL_TREM_OSC_EVT || evtType == AL_VIB_OSC_EVT)
{
@@ -1171,7 +1148,7 @@ void __seqpStopOsc(ALSeqPlayer *seqp, ALVoiceState *vs)
by making sure that the player has a target sequence and
therefore a qnpt value which is needed for the calculation.
*/
static void __setUsptFromTempo (ALSeqPlayer *seqp, f32 tempo)
static void __setUsptFromTempo (N_ALSeqPlayer *seqp, f32 tempo)
{
if (seqp->target)
seqp->uspt = (s32)((f32)tempo * seqp->target->qnpt);
@@ -1187,7 +1164,7 @@ static void __setUsptFromTempo (ALSeqPlayer *seqp, f32 tempo)
is no target sequence.
sct 11/7/95
*/
void __postNextSeqEvent(ALSeqPlayer *seqp)
void __postNextSeqEvent(N_ALSeqPlayer *seqp)
{
ALEvent evt;
s32 deltaTicks;
@@ -1218,4 +1195,4 @@ void __postNextSeqEvent(ALSeqPlayer *seqp)
evt.type = AL_SEQ_REF_EVT;
alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt);
}
}