Files
tp/include/JSystem/JAudio2/JASWaveArcLoader.h
T

77 lines
1.5 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JASWAVEARCLOADER_H
#define JASWAVEARCLOADER_H
2023-09-07 09:50:36 -07:00
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include <dolphin/os.h>
2022-12-31 19:18:40 -07:00
2023-05-12 12:10:14 -07:00
class JKRHeap;
class JKRSolidHeap;
2022-12-31 19:18:40 -07:00
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jaudio
*
*/
2022-12-31 19:18:40 -07:00
struct JASDisposer {
2023-01-01 22:15:07 -07:00
JASDisposer() {}
2025-11-30 14:23:42 -08:00
virtual ~JASDisposer() {}
virtual void onDispose() {}
2022-12-31 19:18:40 -07:00
};
#define DIR_MAX 64
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jaudio
*
*/
2022-12-31 19:18:40 -07:00
struct JASWaveArcLoader {
2025-11-30 14:23:42 -08:00
static JASHeap* getRootHeap();
static void setCurrentDir(char const*);
static char* getCurrentDir();
2022-12-31 19:18:40 -07:00
static char sCurrentDir[DIR_MAX];
static JASHeap* sAramHeap;
};
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jaudio
*
*/
2022-12-31 19:18:40 -07:00
struct JASWaveArc : JASDisposer {
2025-11-30 14:23:42 -08:00
JASWaveArc();
bool loadSetup(u32);
bool eraseSetup();
static void loadToAramCallback(void*);
bool sendLoadCmd();
bool load(JASHeap*);
bool loadTail(JASHeap*);
bool erase();
void setEntryNum(s32);
void setFileName(char const*);
2022-12-31 19:18:40 -07:00
2025-11-30 14:23:42 -08:00
virtual ~JASWaveArc();
virtual void onDispose();
virtual void onLoadDone() {}
virtual void onEraseDone() {}
2024-10-23 19:25:13 -04:00
s32 getStatus() const { return mStatus; }
2022-12-31 19:18:40 -07:00
struct loadToAramCallbackParams {
// not official struct name
2023-01-01 22:13:55 -07:00
/* 0x0 */ JASWaveArc* mWavArc;
2025-12-18 16:31:44 -05:00
/* 0x4 */ s32 mEntryNum;
2023-01-01 22:13:55 -07:00
/* 0x8 */ u32 mBase;
/* 0xC */ u32 _c;
2022-12-31 19:18:40 -07:00
};
2025-06-16 01:38:08 +03:00
/* 0x04 */ mutable JASHeap mHeap;
2023-01-01 22:13:55 -07:00
/* 0x48 */ u32 _48;
2024-10-23 19:25:13 -04:00
/* 0x4C */ volatile s32 mStatus;
2023-01-01 22:13:55 -07:00
/* 0x50 */ int mEntryNum;
/* 0x54 */ u32 mFileLength;
/* 0x58 */ u16 _58;
/* 0x5A */ u16 _5a;
/* 0x5C */ OSMutex mMutex;
2022-12-31 19:18:40 -07:00
};
2021-03-28 22:49:05 +02:00
#endif /* JASWAVEARCLOADER_H */