#include "ao.h"
#ifndef PEOPS_EXTERNALS
#define PEOPS_EXTERNALS
typedef int8 s8;
typedef int16 s16;
typedef int32 s32;
typedef int64 s64;
typedef uint8 u8;
typedef uint16 u16;
typedef uint32 u32;
typedef uint64 u64;
#if LSB_FIRST
static INLINE u16 BFLIP16(u16 x)
{
return x;
}
#else
static INLINE u16 BFLIP16(u16 x)
{
return( ((x>>8)&0xFF)| ((x&0xFF)<<8) );
}
#endif
#define max(a,b) (((a) > (b)) ? (a) : (b))
#define min(a,b) (((a) < (b)) ? (a) : (b))
#define MAXCHAN 24
typedef struct
{
int AttackModeExp;
s32 AttackTime;
s32 DecayTime;
s32 SustainLevel;
int SustainModeExp;
s32 SustainModeDec;
s32 SustainTime;
int ReleaseModeExp;
u32 ReleaseVal;
s32 ReleaseTime;
s32 ReleaseStartTime;
s32 ReleaseVol;
s32 lTime;
s32 lVolume;
} ADSRInfo;
typedef struct
{
int State;
int AttackModeExp;
int AttackRate;
int DecayRate;
int SustainLevel;
int SustainModeExp;
int SustainIncrease;
int SustainRate;
int ReleaseModeExp;
int ReleaseRate;
int EnvelopeVol;
s32 lVolume;
s32 lDummy1;
s32 lDummy2;
} ADSRInfoEx;
#define FLAG_MUTE 1
typedef struct
{
int bNew;
int iSBPos; int spos;
int sinc;
int SB[32+1];
int sval;
u8 * pStart; u8 * pCurr; u8 * pLoop;
int bOn; int bStop; int iActFreq; int iUsedFreq; int iLeftVolume; int iLeftVolRaw; int bIgnoreLoop; int iRightVolume; int iRightVolRaw; int iRawPitch; int iIrqDone; int s_1; int s_2;
int bRVBActive; int iRVBOffset; int iRVBRepeat; int bNoise; int bFMod; int iOldNoise; ADSRInfo ADSR; ADSRInfoEx ADSRX;
} SPUCHAN;
typedef struct
{
int StartAddr; int CurrAddr;
int Enabled;
int VolLeft;
int VolRight;
int iLastRVBLeft;
int iLastRVBRight;
int iRVBLeft;
int iRVBRight;
int FB_SRC_A; int FB_SRC_B; int IIR_ALPHA; int ACC_COEF_A; int ACC_COEF_B; int ACC_COEF_C; int ACC_COEF_D; int IIR_COEF; int FB_ALPHA; int FB_X; int IIR_DEST_A0; int IIR_DEST_A1; int ACC_SRC_A0; int ACC_SRC_A1; int ACC_SRC_B0; int ACC_SRC_B1; int IIR_SRC_A0; int IIR_SRC_A1; int IIR_DEST_B0; int IIR_DEST_B1; int ACC_SRC_C0; int ACC_SRC_C1; int ACC_SRC_D0; int ACC_SRC_D1; int IIR_SRC_B1; int IIR_SRC_B0; int MIX_DEST_A0; int MIX_DEST_A1; int MIX_DEST_B0; int MIX_DEST_B1; int IN_COEF_L; int IN_COEF_R; } REVERBInfo;
#endif