tp/include/JSystem/JAudio2/JASDSPInterface.h

130 lines
4.3 KiB
C++

#ifndef JASDSPINTERFACE_H
#define JASDSPINTERFACE_H
#include "dolphin/types.h"
struct JASWaveInfo;
namespace JASDsp {
struct FxlineConfig_ {
u8 field_0x0;
u8 field_0x1;
u16 field_0x2;
s16 field_0x4;
u16 field_0x6;
s16 field_0x8;
u16 field_0xa;
u32 field_0xc;
s16 field_0x10[8];
};
typedef struct {
s16 field_0x0;
s16 field_0x2;
s16* field_0x4;
s16 field_0x8;
s16 field_0xa;
s16 field_0xc;
s16 field_0xe;
s16 field_0x10[8];
} FxBuf;
struct TChannel {
/* 8029DCA4 */ void init();
/* 8029DCE0 */ void playStart();
/* 8029DD44 */ void playStop();
/* 8029DD50 */ void replyFinishRequest();
/* 8029DD60 */ void forceStop();
/* 8029DD6C */ bool isActive() const;
/* 8029DD7C */ bool isFinish() const;
/* 8029DD8C */ void setWaveInfo(JASWaveInfo const&, u32, u32);
/* 8029DEAC */ void setOscInfo(u32);
/* 8029DEC4 */ void initAutoMixer();
/* 8029DEF0 */ void setAutoMixer(u16, u8, u8, u8, u8);
/* 8029DF1C */ void setPitch(u16);
/* 8029DF34 */ void setMixerInitVolume(u8, s16);
/* 8029DF54 */ void setMixerVolume(u8, s16);
/* 8029DF80 */ void setPauseFlag(u8);
/* 8029DF8C */ void flush();
/* 8029DFB0 */ void initFilter();
/* 8029E00C */ void setFilterMode(u16);
/* 8029E044 */ void setIIRFilterParam(s16*);
/* 8029E06C */ void setFIR8FilterParam(s16*);
/* 8029E094 */ void setDistFilter(s16);
/* 8029E09C */ void setBusConnect(u8, u8);
/* 0x000 */ u16 mIsActive;
/* 0x002 */ u16 mIsFinished;
/* 0x004 */ u16 mPitch;
/* 0x006 */ short field_0x006;
/* 0x008 */ u16 field_0x008;
/* 0x00A */ u8 field_0x00A[0x00C - 0x00A];
/* 0x00C */ s16 mPauseFlag;
/* 0x00E */ short field_0x00E;
/* 0x010 */ u16 field_0x010[1][4]; // array size unknown
/* 0x018 */ u8 field_0x018[0x050 - 0x018];
/* 0x050 */ short field_0x050;
/* 0x052 */ u16 field_0x052;
/* 0x054 */ u16 field_0x054;
/* 0x056 */ u16 field_0x056;
/* 0x058 */ u16 field_0x058;
/* 0x05A */ u8 field_0x05A[0x060 - 0x05A];
/* 0x060 */ short field_0x060;
/* 0x062 */ u8 field_0x062[0x064 - 0x062];
/* 0x064 */ u16 field_0x064;
/* 0x066 */ short field_0x066;
/* 0x068 */ int field_0x068;
/* 0x06C */ u8 field_0x06C[0x070 - 0x06C];
/* 0x070 */ int field_0x070;
/* 0x074 */ int field_0x074;
/* 0x078 */ short field_0x078[4];
/* 0x080 */ short field_0x080[20];
/* 0x0A8 */ short field_0x0a8[4];
/* 0x0B0 */ u16 field_0x0b0[16];
/* 0x0D0 */ u8 field_0x0D0[0x100 - 0x0D0];
/* 0x100 */ u16 field_0x100;
/* 0x102 */ u16 field_0x102;
/* 0x104 */ s16 field_0x104;
/* 0x106 */ s16 field_0x106;
/* 0x108 */ u16 mFilterMode;
/* 0x10A */ u16 mForcedStop;
/* 0x10C */ int field_0x10c;
/* 0x110 */ u32 field_0x110;
/* 0x114 */ u32 field_0x114;
/* 0x118 */ u32 field_0x118;
/* 0x11C */ int field_0x11c;
/* 0x120 */ s16 fir_filter_params[8];
/* 0x130 */ u8 field_0x130[0x148 - 0x130];
/* 0x148 */ s16 iir_filter_params[8];
/* 0x158 */ u8 field_0x158[0x180 - 0x158];
};
/* 8029D958 */ void boot(void (*)(void*));
/* 8029D9A4 */ void releaseHalt(u32);
/* 8029D9C4 */ void finishWork(u16);
/* 8029D9E4 */ void syncFrame(u32, u32, u32);
/* 8029DA04 */ void setDSPMixerLevel(f32);
/* 8029DA30 */ f32 getDSPMixerLevel();
/* 8029DA38 */ TChannel* getDSPHandle(int);
/* 8029DA48 */ void setFilterTable(s16*, s16*, u32);
/* 8029DA6C */ void flushBuffer();
/* 8029DAA0 */ void invalChannelAll();
/* 8029DAC8 */ void initBuffer();
/* 8029DB78 */ int setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
extern u8 const DSPADPCM_FILTER[64];
extern u32 const DSPRES_FILTER[320];
extern u16 SEND_TABLE[];
extern TChannel* CH_BUF;
extern FxBuf* FX_BUF;
extern f32 sDSPVolume;
#ifdef DEBUG
extern s32 dspMutex;
#endif
};
u16 DSP_CreateMap2(u32 msg);
#endif /* JASDSPINTERFACE_H */