Merge pull request #552 from Jcw87/JAudio

JAudio
This commit is contained in:
Jasper St. Pierre
2023-12-18 08:04:39 -08:00
committed by GitHub
30 changed files with 1599 additions and 391 deletions
+6 -6
View File
@@ -20,17 +20,17 @@ struct JAIAnimeSound__Slot {
class JAIAnimeSound {
public:
/* 0x00 */ JAIAnimeSound__Slot mSlots[8];
/* 0x60 */ u32 m60;
/* 0x64 */ u32 m64;
/* 0x68 */ u32 m68;
/* 0x6C */ u32 m6C;
/* 0x70 */ void* m70[2];
/* 0x60 */ u32 field_0x60;
/* 0x64 */ u32 field_0x64;
/* 0x68 */ u32 field_0x68;
/* 0x6C */ u32 field_0x6c;
/* 0x70 */ void* field_0x70[2];
/* 0x78 */ int mDataCounterInc;
/* 0x7C */ int mDataCounterLimit;
/* 0x80 */ u32 mDataCounter;
/* 0x84 */ int mLoopCount;
/* 0x88 */ f32 mCurrentTime;
/* 0x8C */ u8 m8C[0x90 - 0x8C];
/* 0x8C */ u8 field_0x8c[0x90 - 0x8C];
/* 0x90 */ u16* mpData;
/* 0x94 */ /* vtable */
+26
View File
@@ -0,0 +1,26 @@
#ifndef JAIBANKWAVE_H
#define JAIBANKWAVE_H
#include "dolphin/types.h"
namespace JAInter {
namespace BankWave {
void setWsGroupNumber(s32, s32);
void setWsLoadStatus(s32, s32);
void init();
void setWaveScene();
void loadSecondStayWave();
void setSceneSetFinishCallback(s32, s32);
void finishSceneSet(u32);
void loadSceneWave(s32, s32);
void loadGroupWave(s32, s32);
void getWaveLoadStatus(s32);
void checkAllWaveLoadStatus();
extern s32* wsGroupNumber;
extern s32* wsLoadStatus;
extern s32 wsMax;
};
}
#endif /* JAIBANKWAVE_H */
+88
View File
@@ -0,0 +1,88 @@
#ifndef JAIBASIC_H
#define JAIBASIC_H
#include "JSystem/JUtility/JUTAssert.h"
#include "dolphin/mtx/vec.h"
class JAISound;
class JKRSolidHeap;
namespace JAInter {
class Actor;
}
namespace JASystem {
class TTrack;
}
class JAIBasic {
public:
JAIBasic();
virtual JAISound* makeSound(u32);
virtual bool getMapInfoFxline(u32);
virtual bool getMapInfoGround(u32);
virtual f32 getMapInfoFxParameter(u32);
virtual void setSeExtParameter(JAISound*);
virtual void setRegisterTrackCallback();
virtual void initStream();
void initDriver(JKRSolidHeap*, u32, u8);
void initInterface(u8);
void initInterfaceMain();
void initHeap();
void initArchive();
void initResourcePath();
void setCameraInfo(Vec*, Vec*, f32(*)[4], u32);
void initAudioThread(JKRSolidHeap*, u32, u8);
void initCamera();
bool initReadFile();
void processFrameWork();
void startSoundVec(u32, JAISound**, Vec*, u32, u32, u8);
void startSoundActor(u32, JAISound**, JAInter::Actor*, u32, u8);
void startSoundDirectID(u32, JAISound**, JAInter::Actor*, u32, u8);
void startSoundBasic(u32, JAISound**, JAInter::Actor*, u32, u8, void*);
void stopSoundHandle(JAISound*, u32);
void stopPlayingCategoryObjectSe(u8, void*);
void stopAllSe(u8, void*);
void stopActorSoundOneBuffer(void*, JAISound*);
void stopIDSoundOneBuffer(u32, JAISound*);
void stopIDActorSoundOneBuffer(u32, void*, JAISound*);
void stopAllSound(void*);
void stopAllSound(u32);
void stopAllSound(u32, void*);
void deleteObject(void*);
void getSoundOffsetNumberFromID(u32);
void setSeCategoryVolume(u8, u8);
static u16 setParameterSeqSync(JASystem::TTrack*, u16);
void allocStreamBuffer(void*, s32);
void deallocStreamBuffer();
/* 0x04 */ void* field_0x4;
/* 0x08 */ JKRSolidHeap* field_0x8;
/* 0x0C */ u8 initLoadFileSw;
/* 0x0D */ u8 field_0xd;
/* 0x0E */ struct {
u8 flag1 : 1;
u8 flag2 : 1;
u8 flag3 : 1;
u8 flag4 : 1;
u8 flag5 : 1;
u8 flag6 : 1;
u8 flag7 : 1;
u8 flag8 : 1;
} field_0xe;
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1C */ int field_0x1c;
static JAIBasic* getInterface() { return msBasic; }
static JKRSolidHeap* getCurrentJAIHeap() {
JUT_ASSERT_MSG(148, msCurrentHeap, "JAIBasicのカレントヒープがありません(mCurrentHeap==NULL\n");
return msCurrentHeap;
}
static JAIBasic* msBasic;
static JKRSolidHeap* msCurrentHeap;
};
#endif /* JAIBASIC_H */
+19
View File
@@ -0,0 +1,19 @@
#ifndef JAICONST_H
#define JAICONST_H
#include "JSystem/JMath/random.h"
#include "dolphin/mtx/vec.h"
namespace JAInter {
u8* transInitDataFile(u8*, u32);
void loadTmpDVDFile(char*, u8**);
void deleteTmpDVDFile(u8**);
u32 routeToTrack(u32);
namespace Const {
extern Vec dummyZeroVec;
extern JMath::TRandom_fast_ random;
}
}
#endif /* JAICONST_H */
+126
View File
@@ -0,0 +1,126 @@
#ifndef JAIGLOBALPARAMETER_H
#define JAIGLOBALPARAMETER_H
#include "dolphin/types.h"
namespace JAIGlobalParameter {
void setParamInitDataPointer(void*);
void setParamInterfaceHeapSize(u32);
void setParamSoundSceneMax(u32);
void setParamSeRegistMax(u32);
void setParamSeTrackMax(u32);
void setParamSeqPlayTrackMax(u32);
void setParamSeqControlBufferMax(u32);
void setParamStreamControlBufferMax(u32);
void setParamAutoHeapMax(u32);
void setParamStayHeapMax(u32);
void setParamInputGainDown(f32);
void setParamOutputGainUp(f32);
void setParamDistanceMax(f32);
void setParamMaxVolumeDistance(f32);
void setParamMinDistanceVolume(f32);
void setParamSeDistanceFxParameter(u16);
void setParamStreamDecodedBufferBlocks(u32);
void setParamStreamInsideBufferCut(bool);
void setParamAutoHeapRoomSize(u32);
void setParamStayHeapSize(u32);
void setParamSeDolbyCenterValue(u8);
void setParamSeDolbyFrontDistanceMax(f32);
void setParamSeDolbyBehindDistanceMax(f32);
void setParamInitDataFileName(char*);
void setParamWavePath(char*);
void setParamSequenceArchivesPath(char*);
void setParamStreamPath(char*);
void setParamAudioResPath(char*);
void setParamSequenceArchivesFileName(char*);
void setParamDummyObjectLifeTime(u32);
void setParamDummyObjectMax(u32);
void setParamAudioCameraMax(u32);
void setParamSystemTrackMax(s32);
void setParamSoundOutputMode(u32);
int getParamSeCategoryMax();
u32 getParamSoundSceneMax();
u32 getParamSeRegistMax();
u32 getParamSeTrackMax();
u32 getParamSeqTrackMax();
u32 getParamSeqControlBufferMax();
u32 getParamStreamControlBufferMax();
u32 getParamStreamParameterBufferMax();
u32 getParamAutoHeapMax();
u32 getParamStayHeapMax();
u32 getParamSeqPlayTrackMax();
f32 getParamDistanceMax();
f32 getParamMaxVolumeDistance();
f32 getParamMinDistanceVolume();
u32 getParamAutoHeapRoomSize();
u32 getParamStayHeapSize();
f32 getParamSeDolbyCenterValue();
f32 getParamSeDolbyFrontDistanceMax();
f32 getParamSeDolbyBehindDistanceMax();
char* getParamInitDataFileName();
char* getParamWavePath();
char* getParamSequenceArchivesPath();
char* getParamStreamPath();
char* getParamAudioResPath();
char* getParamSequenceArchivesFileName();
u32 getParamDopplarMoveTime();
u8 getParamDistanceParameterMoveTime();
u32 getParamDummyObjectMax();
u8 getParamSeqMuteVolumeSePlay();
u32 getParamSeqMuteMoveSpeedSePlay();
u32 getParamAudioCameraMax();
u8 getParamSeqParameterLines();
u8 getParamStreamParameterLines();
u16 getParamSeDistanceWaitMax();
extern u8 distanceParameterMoveTime;
extern u8 audioSystemThreadPriority;
extern u8 audioDvdThreadPriority;
extern u8 seqMuteVolumeSePlay;
extern u8 seqParameterLines;
extern u8 streamParameterLines;
extern u16 seDistanceFxParameter;
extern u32 soundSceneMax;
extern u32 seRegistMax;
extern u32 seTrackMax;
extern u32 seqTrackMax;
extern u32 seqPlayTrackMax;
extern u32 seqControlBufferMax;
extern u32 streamControlBufferMax;
extern u32 streamParameterBufferMax;
extern u32 autoHeapMax;
extern u32 stayHeapMax;
extern u32 autoHeapRoomSize;
extern u32 stayHeapSize;
extern char* initDataFileName;
extern char* wavePath;
extern char* sequenceArchivesPath;
extern char* streamPath;
extern char* audioResPath;
extern char* sequenceArchivesFileName;
extern f32 inputGainDown;
extern f32 outputGainUp;
extern f32 distanceMax;
extern f32 maxVolumeDistance;
extern f32 seDolbyCenterValue;
extern f32 seDolbyFrontDistanceMax;
extern f32 seDolbyBehindDistanceMax;
extern u32 dopplarMoveTime;
extern u32 dummyObjectLifeTime;
extern u32 dummyObjectMax;
extern u32 seqMuteMoveSpeedSePlay;
extern u32 audioCameraMax;
extern s32 systemTrackMax;
extern f32 panDistanceMax;
extern f32 panDistance2Max;
extern f32 panAngleParameter;
extern f32 panAngleParameter2;
extern f32 dopplarParameter;
extern u16 seDistanceWaitMax;
extern f32 seDistancepitchMax;
extern u16 seDefaultFx;
extern u32 interfaceHeapSize;
extern f32 minDistanceVolume;
}
#endif /* JAIGLOBALPARAMETER_H */
+15
View File
@@ -0,0 +1,15 @@
#ifndef JAIINITDATA_H
#define JAIINITDATA_H
#include "dolphin/types.h"
namespace JAInter {
namespace InitData {
BOOL checkInitDataFile();
void checkInitDataOnMemory();
extern u32* aafPointer;
};
}
#endif /* JAIINITDATA_H */
+133
View File
@@ -0,0 +1,133 @@
#ifndef JAISEQUENCEMGR_H
#define JAISEQUENCEMGR_H
#include "JSystem/JAudio/JAISound.h"
#include "JSystem/JAudio/JASCmdStack.h"
#include "JSystem/JAudio/JASTrack.h"
class JAISound;
class JKRArchive;
namespace JAInter {
class Actor;
class MoveParaSet;
class PlayerParameter {
public:
PlayerParameter();
~PlayerParameter();
/* 0x00 */ int field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ int field_0xc;
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1C */ int field_0x1c;
/* 0x20 */ int field_0x20;
/* 0x24 */ int field_0x24;
/* 0x28 */ int field_0x28;
/* 0x2C */ JASystem::Kernel::TPortCmd field_0x2c;
};
class SeqUpdateData {
public:
SeqUpdateData();
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ u8 field_0x2;
/* 0x03 */ u8 field_0x3;
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32* trackVolume;
/* 0x28 */ f32* trackPitch;
/* 0x2C */ f32* trackFxmix;
/* 0x30 */ f32* trackPan;
/* 0x34 */ f32* trackDolby;
/* 0x38 */ int field_0x38;
/* 0x3C */ int field_0x3c;
/* 0x40 */ int field_0x40;
/* 0x44 */ int* trackupdate;
/* 0x48 */ int field_0x48;
/* 0x4C */ PlayerParameter* systemTrackParameter;
};
class MuteBit {
public:
MuteBit();
u8 flag1 : 1;
u8 flag2 : 1;
u8 flag3 : 1;
u8 flag4 : 1;
u8 flag5 : 1;
u8 flag6 : 1;
u8 flag7 : 1;
u8 flag8 : 1;
};
class SeqParameter {
public:
SeqParameter() {}
int init();
/* 0x0000 */ MoveParaSet field_0x0;
/* 0x0010 */ MoveParaSet field_0x10[16];
/* 0x0110 */ MoveParaSet field_0x110[20];
/* 0x0250 */ MoveParaSet* seqPan;
/* 0x0254 */ MoveParaSet* seqPitch;
/* 0x0258 */ MoveParaSet* seqFxmix;
/* 0x025C */ MoveParaSet* seqDolby;
/* 0x0260 */ MoveParaSet field_0x260[32];
/* 0x0460 */ MoveParaSet field_0x460[32];
/* 0x0660 */ MoveParaSet field_0x660[32];
/* 0x0860 */ MoveParaSet field_0x860[32];
/* 0x0A60 */ MoveParaSet field_0xa60[32];
/* 0x0C60 */ MoveParaSet field_0xc60[32];
/* 0x0E60 */ u8 field_0xe60[0x1261 - 0xe60];
/* 0x1261 */ u8 field_0x1261;
/* 0x1262 */ u8 field_0x1262[0x133c - 0x1262];
/* 0x133C */ MuteBit field_0x133c[32];
/* 0x135C */ SeqUpdateData* field_0x135c;
/* 0x1360 */ JASystem::TTrack field_0x1360;
/* 0x16EC */ JASystem::TTrack::TOuterParam field_0x16ec;
};
namespace SequenceMgr {
void init();
void getArchiveName(char*);
void setArchivePointer(JKRArchive*);
void processGFrameSequence();
void checkEntriedSeq();
void checkFadeoutSeq();
void checkStoppedSeq();
void checkPlayingSeq();
void checkStartedSeq();
void checkReadSeq();
void checkSeqWave();
void checkPlayingSeqUpdateMultiplication(u32, u8, u32, MoveParaSet*, u32*, u8, f32*);
void checkPlayingSeqUpdateAddition(u32, u8, u32, MoveParaSet*, u32*, u8, f32*, f32);
void checkPlayingSeqUpdateTrack(u32, u32, MoveParaSet*, u32*, u8, f32*);
void checkPlayingSeqTrack(u32);
void stopSeq(JAISound*);
void checkDvdLoadArc(u32, u32);
void storeSeqBuffer(JAISound**, Actor*, u32, u32, u8, void*);
void releaseSeqBuffer(JAISound*, u32);
int getPlayTrackInfo(u32);
extern LinkSound seqControl;
extern SeqUpdateData* seqTrackInfo;
extern int* FixSeqBufPointer;
extern JKRArchive* arcPointer;
}
}
#endif /* JAISEQUENCEMGR_H */
+137
View File
@@ -0,0 +1,137 @@
#ifndef JAISOUND_H
#define JAISOUND_H
#include "dolphin/types.h"
namespace JAInter {
class Actor;
class SeParameter;
class SeqParameter;
class StreamParameter;
}
class JAISound {
public:
JAISound();
virtual f32 setPositionDopplarCommon(u32);
virtual f32 setDistanceVolumeCommon(f32, u8);
virtual f32 setDistancePanCommon();
virtual void setSeDistanceParameters();
virtual void setSeDistanceVolume(u8);
virtual void setSeDistancePan(u8);
virtual void setSeDistancePitch(u8);
virtual void setSeDistanceFxmix(u8);
virtual void setSeDistanceFir(u8);
virtual void setSeDistanceDolby(u8);
virtual void setSePositionDopplar();
int getSeCategoryNumber();
int getSwBit();
int checkSwBit(u32);
u8 getInfoPriority();
void clearMainSoundPPointer();
void start(u32);
void stop(u32);
void setVolume(f32, u32, u8);
void setPan(f32, u32, u8);
void setPitch(f32, u32, u8);
void setFxmix(f32, u32, u8);
void setDolby(f32, u32, u8);
void setTempoProportion(f32, u32);
void setPortData(u8, u16);
void setPrepareFlag(u8);
void setSeqInterVolume(u8, f32, u32);
void setSeqInterPan(u8, f32, u32);
void setSeqInterPitch(u8, f32, u32);
void setSeqInterFxmix(u8, f32, u32);
void setSeqInterDolby(u8, f32, u32);
void setSeqTempoProportion(f32, u32);
void setSeqPortData(u8, u16, u32);
void setTrackVolume(u8, f32, u32);
void setTrackInterruptSwitch(u8, u8);
void setTrackPortData(u8, u8, u16);
void setSeInterRandomPara(f32*, u32, f32, f32);
void setSeInterVolume(u8, f32, u32, u8);
void setSeInterPan(u8, f32, u32, u8);
void setSeInterPitch(u8, f32, u32, f32);
void setSeInterFxmix(u8, f32, u32, u8);
void setSeInterDolby(u8, f32, u32, u8);
void setSePortData(u8, u16);
void setStreamInterVolume(u8, f32, u32);
void setStreamInterPitch(u8, f32, u32);
void setStreamInterPan(u8, f32, u32);
void setStreamPrepareFlag(u8);
void setPauseMode(u8, u8);
void setSeqPrepareFlag(u8);
f32 getSeqInterVolume(u8);
f32 getStreamInterVolume(u8);
JAInter::SeqParameter* getSeqParameter();
JAInter::SeParameter* getSeParameter();
JAInter::StreamParameter* getStreamParameter();
int getTrackPortRoute(u8, u8);
int checkSoundHandle(u32, void*);
void initParameter(JAISound**, JAInter::Actor*, u32, u32, u8, void*);
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u8 field_0x6;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u8 field_0x8;
/* 0x09 */ u8 field_0x9;
/* 0x0a */ short field_0xa;
/* 0x0c */ int field_0xc;
/* 0x10 */ int field_0x10;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1c */ int field_0x1c;
/* 0x20 */ void* field_0x20;
/* 0x24 */ void* field_0x24;
/* 0x28 */ int field_0x28;
/* 0x2C */ int field_0x2c;
/* 0x30 */ JAISound* field_0x30;
/* 0x34 */ JAISound* field_0x34;
/* 0x38 */ JAISound** field_0x38;
/* 0x3C */ void* field_0x3c;
/* 0x40 */ void* field_0x40;
};
namespace JAInter {
class MoveParaSet {
public:
MoveParaSet(f32 param_1=1.0f) {
field_0x4 = param_1;
field_0x0 = param_1;
field_0xc = 0;
}
int set(f32 param_1, u32 param_2);
bool move();
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ int field_0xc;
};
class MoveParaSetInitHalf : public MoveParaSet {
public:
MoveParaSetInitHalf() : MoveParaSet(0.5f) {}
};
class MoveParaSetInitZero : public MoveParaSet {
public:
MoveParaSetInitZero() : MoveParaSet(0.0f) {}
};
class LinkSound {
public:
void init(JAISound* param_1, u32 param_2);
JAISound* getSound();
void releaseSound(JAISound* param_1);
/* 0x00 */ JAISound* field_0x0;
/* 0x04 */ JAISound* field_0x4;
/* 0x08 */ JAISound* field_0x8;
};
}
#endif /* JAISOUND_H */
+22
View File
@@ -0,0 +1,22 @@
#ifndef JAISOUNDTABLE_H
#define JAISOUNDTABLE_H
#include "dolphin/types.h"
namespace JAInter {
namespace SoundTable {
void init(u8*, u32);
void getInfoPointer(u32);
void getInfoFormat(u32);
u8 getCategotyMax();
extern u8 mVersion;
extern u8 mCategotyMax;
extern s16* mSoundMax;
extern u32 mDatasize;
extern int* mPointerCategory;
extern u8* mAddress;
}
}
#endif /* JAISOUNDTABLE_H */
+122
View File
@@ -0,0 +1,122 @@
#ifndef JAISTREAMMGR_H
#define JAISTREAMMGR_H
#include "dolphin/dvd/dvd.h"
#include "JSystem/JAudio/JAISound.h"
#include "JSystem/JAudio/JASHeapCtrl.h"
class JAISound;
namespace JASystem {
class TDSPChannel;
namespace DSPInterface {
class DSPBuffer;
}
}
namespace JAInter {
class Actor;
namespace StreamMgr {
void init();
void storeStreamBuffer(JAISound**, Actor*, u32, u32, u8, void*);
void releaseStreamBuffer(JAISound*, u32);
void processGFrameStream();
void checkEntriedStream();
void checkWaitStream();
void checkRequestStream();
void checkPlayingStream();
extern LinkSound streamControl;
extern u8 flags;
extern int streamUpdate;
extern u8* streamList;
extern u8* initOnCodeStrm;
}
namespace StreamLib {
void Play_DirectPCM(JASystem::TDSPChannel*, s16*, u16, u32, s16, u16);
int Get_DirectPCM_LoopRemain(JASystem::DSPInterface::DSPBuffer*);
int Get_DirectPCM_Remain(JASystem::DSPInterface::DSPBuffer*);
void init(bool);
void allocBuffer(void*, s32);
bool deallocBuffer();
int getNeedBufferSize();
void setAllocBufferCallback(void (*)(void));
void setDeallocBufferCallback(void (*)(void));
void sync(s32);
void __DecodePCM();
void __DecodeADPCM();
void __Decode();
void __LoadFin(s32, DVDFileInfo*);
void LoadADPCM();
void setVolume(f32);
void setPitch(f32);
void setPan(f32 param_1);
void stop();
void setPauseFlag(u8 param_1);
void clearPauseFlag(u8 param_1);
void setPrepareFlag(u8 param_1);
void setOutputMode(u32 param_1);
u8 getPlayingFlag();
void setDecodedBufferBlocks(u32 param_1);
void LoopInit();
s32 directPlayWait(void* param_1);
void start(char* param_1, u32 param_2, void* param_3);
void __start();
s32 callBack(void* param_1);
extern s16 filter_table[];
extern s16 table4[];
extern DVDFileInfo finfo;
extern u32 header[];
extern char Filename[];
extern JASystem::Kernel::TSolidHeap streamHeap;
extern u32 LOOP_BLOCKS;
extern int LOOP_SAMPLESIZE;
extern int outputmode;
extern int adpcm_remain;
extern int adpcm_loadpoint;
extern int loadsize;
extern int adpcm_buffer;
extern int loop_buffer;
extern int store_buffer;
extern JASystem::TDSPChannel* assign_ch[2];
extern int playside;
extern int playback_samples;
extern int loadup_samples;
extern u32 adpcmbuf_state;
extern int movieframe;
extern bool stopflag;
extern bool stopflag2;
extern u8 playflag;
extern u8 playflag2;
extern u8 prepareflag;
extern u8 dspch_deallockflag;
extern f32 outvolume;
extern f32 outpitch;
extern f32 outpan;
extern f32 stackvolume;
extern f32 stackpitch;
extern f32 stackpan;
extern u8 outflag_volume;
extern bool outflag_pan;
extern bool outflag_pitch;
extern int loop_start_flag;
extern int outpause;
extern int playmode;
extern int shift_sample;
extern int extra_sample;
extern int DvdLoadFlag;
extern u32 startInitFlag;
extern int Mode;
extern int sFillBlockSize;
extern void* Head;
extern bool bufferMode;
extern u8 allocFlag;
extern u8 dspFinishFlag;
extern void (*allocCallback)();
extern void (*deallocCallback)();
}
}
#endif /* JAISTREAMMGR_H */
@@ -0,0 +1,33 @@
#ifndef JAISYSTEMINTERFACE_H
#define JAISYSTEMINTERFACE_H
#include "JSystem/JAudio/JASCmdStack.h"
class JAISound;
namespace JASystem {
class TTrack;
namespace Kernel {
class TPortArgs;
}
}
namespace JAInter {
class SeqUpdateData;
namespace SystemInterface {
s32 checkFileExsistence(char*);
int checkSeqActiveFlag(JASystem::TTrack*);
void trackToSeqp(JAISound*, u8);
void setSeqPortargsF32(JAInter::SeqUpdateData*, u32, u8, f32);
void setSeqPortargsU32(JAInter::SeqUpdateData*, u32, u8, u32);
void rootInit(JAInter::SeqUpdateData*);
void trackInit(JAInter::SeqUpdateData*);
void outerInit(JAInter::SeqUpdateData*, void*, u32, u16, u8);
void setPortParameter(JASystem::Kernel::TPortArgs*, JASystem::TTrack*, u32, u32);
void setSePortParameter(JASystem::Kernel::TPortArgs*);
extern JASystem::Kernel::TPortCmd systemPortCmd;
}
}
#endif /* JAISYSTEMINTERFACE_H */
+1
View File
@@ -16,6 +16,7 @@ namespace JASystem {
class TPortCmd {
public:
TPortCmd();
~TPortCmd() {}
bool addPortCmdOnce();
bool setPortCmd(void (*)(TPortArgs*), TPortArgs*);
bool addPortCmd(TPortHead*);
+1 -1
View File
@@ -85,7 +85,7 @@ namespace JASystem {
/* 0x64 */ short field_0x64;
/* 0x66 */ short field_0x66;
/* 0x68 */ int field_0x68;
/* 0x6C */ int field_0x6c;
/* 0x6C */ u32 field_0x6c;
/* 0x70 */ u8 field_0x70[0x74 - 0x70];
/* 0x74 */ int field_0x74;
/* 0x78 */ short field_0x78[4];
+10
View File
@@ -10,6 +10,16 @@
OSPanic(__FILE__, LINE, "Halt"); \
}
// Favored by JAI (JAudio)
#define JUT_ASSERT_MSG(LINE, COND, MSG) \
if (!(COND)) { \
OSReport(MSG); \
if (!(COND)) { \
JUTAssertion::showAssert(3, __FILE__, LINE, #COND); \
OSPanic(__FILE__, LINE, "Halt"); \
} \
}
// Some asserts on floats have the wrong codegen with JUT_ASSERT's (COND) == 0 check.
// Using !(COND) instead fixes them.
#define JUT_ASSERT_FLOAT(LINE, COND) \
+10 -1
View File
@@ -78,7 +78,16 @@ namespace daObjTribox {
void execute_correct();
BOOL _execute();
BOOL _draw();
static void reset();
static cXyz M_sound_pos;
static int M_correct_cnt;
static bool M_correct_flag;
static int M_b_cont_cnt;
static int M_c_cont_cnt;
static u8 M_sink_start;
public:
/* Place member variables here */
};