mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
82 lines
2.3 KiB
C++
82 lines
2.3 KiB
C++
#ifndef JASDSPCHANNEL_H
|
|
#define JASDSPCHANNEL_H
|
|
|
|
#include "dolphin/os/OSTime.h"
|
|
|
|
namespace JASystem {
|
|
class TChannel;
|
|
|
|
namespace DSPInterface {
|
|
class DSPBuffer;
|
|
}
|
|
|
|
extern OSTick history[];
|
|
extern f32 DSP_LIMIT_RATIO;
|
|
extern OSTick old_time;
|
|
|
|
class TDSPChannel {
|
|
public:
|
|
TDSPChannel() {
|
|
field_0xc = NULL;
|
|
mCallback = NULL;
|
|
}
|
|
~TDSPChannel() {}
|
|
void init(u8);
|
|
int allocate(u32);
|
|
void free();
|
|
bool forceStop();
|
|
void forceDelete();
|
|
void play();
|
|
void stop();
|
|
static void initAll();
|
|
static TDSPChannel* alloc(u32, u32);
|
|
static int free(TDSPChannel*, u32);
|
|
static TDSPChannel* getLower();
|
|
static TDSPChannel* getLowerActive();
|
|
static BOOL breakLower(u8);
|
|
static bool breakLowerActive(u8);
|
|
static void updateAll();
|
|
void onUpdate(u32);
|
|
static int getNumBreak();
|
|
|
|
u8 getNumber() { return mNumber; }
|
|
u8 getStatus() { return mStatus; }
|
|
u8 getPriority() { return mPriority; }
|
|
void setPriority(u8 priority) { mPriority = priority; }
|
|
u16 getPriorityTime() { return mPriorityTime; }
|
|
void setPriorityTime(u16 time) { mPriorityTime = time; }
|
|
u16 getCBInterval() { return mCBInterval; }
|
|
void setCBInterval(u16 interval) { mCBInterval = interval; }
|
|
void decCBInterval() { mCBInterval--; }
|
|
TChannel* getLogicalChannel() {
|
|
if (mCallback != NULL) {
|
|
return (TChannel*)field_0x8; // ?? is this userdata?
|
|
} else {
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
// TODO: inlines
|
|
void checkSign(u32) {}
|
|
void isFree() {}
|
|
void forceStop(TDSPChannel*) {}
|
|
void release(TDSPChannel*, u32) {}
|
|
|
|
/* 0x00 */ u8 mNumber;
|
|
/* 0x01 */ u8 mStatus;
|
|
/* 0x02 */ u8 field_0x2;
|
|
/* 0x03 */ u8 mPriority;
|
|
/* 0x04 */ u16 mPriorityTime;
|
|
/* 0x06 */ u16 mCBInterval;
|
|
/* 0x08 */ u32 field_0x8;
|
|
/* 0x0C */ DSPInterface::DSPBuffer* field_0xc;
|
|
/* 0x10 */ int (*mCallback)(TDSPChannel*, u32);
|
|
|
|
static int smnFree;
|
|
static TDSPChannel* DSPCH;
|
|
static int smnUse;
|
|
};
|
|
}
|
|
|
|
#endif /* JASDSPCHANNEL_H */
|