mirror of https://github.com/zeldaret/tp.git
67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
#ifndef JAISEQDATAMGR_H
|
|
#define JAISEQDATAMGR_H
|
|
|
|
#include "JSystem/JAudio2/JAISound.h"
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
struct JAISeqData {
|
|
JAISeqData(void* param_0, u32 param_1) {
|
|
field_0x0 = param_0;
|
|
field_0x4 = param_1;
|
|
}
|
|
|
|
void set(void* param_0, u32 param_1) {
|
|
field_0x0 = param_0;
|
|
field_0x4 = param_1;
|
|
}
|
|
|
|
/* 0x00 */ void* field_0x0;
|
|
/* 0x04 */ u32 field_0x4;
|
|
};
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
struct JAISeqDataRegion {
|
|
bool intersects(JAISeqData& seqData) const {
|
|
if ((u32)addr + size < (u32)seqData.field_0x0) {
|
|
return false;
|
|
}
|
|
if ((u32)seqData.field_0x0 + seqData.field_0x4 < (u32)addr) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 0x00 */ u8* addr;
|
|
/* 0x04 */ u32 size;
|
|
};
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
struct JAISeqDataUser {
|
|
virtual ~JAISeqDataUser();
|
|
virtual bool isUsingSeqData(JAISeqDataRegion const&) = 0;
|
|
virtual int releaseSeqData(JAISeqDataRegion const&) = 0;
|
|
};
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
struct JAISeqDataMgr {
|
|
enum SeqDataReturnValue{ SeqDataReturnValue_0 = 0, SeqDataReturnValue_1 = 1, SeqDataReturnValue_2 = 2};
|
|
virtual ~JAISeqDataMgr();
|
|
virtual SeqDataReturnValue getSeqData(JAISoundID, JAISeqData*) = 0;
|
|
virtual int releaseSeqData() = 0;
|
|
virtual bool setSeqDataUser(JAISeqDataUser*) = 0;
|
|
};
|
|
|
|
#endif /* JAISEQDATAMGR_H */
|