mirror of https://github.com/zeldaret/tp.git
60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
#ifndef JASAICTRL_H
|
|
#define JASAICTRL_H
|
|
|
|
#include "dolphin/types.h"
|
|
|
|
enum JASOutputRate {
|
|
OUTPUT_RATE_0,
|
|
};
|
|
|
|
enum JASMixMode {
|
|
MIX_MODE_MONO,
|
|
MIX_MODE_MONO_WIDE,
|
|
MIX_MODE_EXTRA,
|
|
MIX_MODE_INTERLEAVE,
|
|
};
|
|
|
|
namespace JASDriver {
|
|
typedef s16* (*MixCallback)(s32);
|
|
typedef void (*MixFunc)(s16*, u32, MixCallback);
|
|
|
|
/* 8029C388 */ void initAI(void (*)(void));
|
|
/* 8029C4E4 */ void startDMA();
|
|
/* 8029C504 */ void stopDMA();
|
|
/* 8029C524 */ void setOutputRate(JASOutputRate);
|
|
/* 8029C568 */ void updateDac();
|
|
/* 8029C6C4 */ void updateDSP();
|
|
/* 8029C7E0 */ void readDspBuffer(s16*, u32);
|
|
/* 8029C900 */ void finishDSPFrame();
|
|
/* 8029C9DC */ void registerMixCallback(MixCallback, JASMixMode);
|
|
/* 8029C9E8 */ f32 getDacRate();
|
|
/* 8029C9F0 */ u32 getSubFrames();
|
|
/* 8029C9F8 */ u32 getDacSize();
|
|
/* 8029CA04 */ u32 getFrameSamples();
|
|
/* 8029CA10 */ void mixMonoTrack(s16*, u32, MixCallback);
|
|
/* 8029CAC0 */ void mixMonoTrackWide(s16*, u32, MixCallback);
|
|
/* 8029CB70 */ void mixExtraTrack(s16*, u32, MixCallback);
|
|
/* 8029CC50 */ void mixInterleaveTrack(s16*, u32, MixCallback);
|
|
/* 8029CCD4 */ u32 getSubFrameCounter();
|
|
/* 8029E2A8 */ void subframeCallback();
|
|
/* 8029E2D0 */ void DSPSyncCallback();
|
|
|
|
extern const MixFunc sMixFuncs[4];
|
|
extern s16* sDmaDacBuffer[3];
|
|
extern JASMixMode sMixMode;
|
|
extern f32 sDacRate;
|
|
extern u32 sSubFrames;
|
|
extern s16** sDspDacBuffer;
|
|
extern s32 sDspDacWriteBuffer;
|
|
extern s32 sDspDacReadBuffer;
|
|
extern s32 sDspStatus;
|
|
extern void (*sDspDacCallback)(s16*, u32);
|
|
extern s16* lastRspMadep;
|
|
extern void (*dacCallbackFunc)(s16*, u32);
|
|
extern MixCallback extMixCallback;
|
|
extern u32 sOutputRate;
|
|
extern u32 sSubFrameCounter;
|
|
};
|
|
|
|
#endif /* JASAICTRL_H */
|