tp/include/JSystem/JAudio2/JAISeqDataMgr.h

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