tp/include/JSystem/JAudio2/JASAiCtrl.h

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 */