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

41 lines
1.1 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JASTASKTHREAD_H
#define JASTASKTHREAD_H
2022-06-01 03:49:32 -07:00
#include "JSystem/JKernel/JKRThread.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
2022-06-01 03:49:32 -07:00
typedef void (*JASThreadCallback)(void*);
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jaudio
*
*/
2022-06-01 03:49:32 -07:00
class JASTaskThread : public JKRThread {
private:
struct JASThreadCallStack {
/* 0x00 */ JASThreadCallback callback_;
/* 0x04 */ u32 msgType_;
/* 0x08 */ union {
u8 buffer[0x400];
void* bufferPtr;
} msg;
};
2022-06-01 03:49:32 -07:00
public:
typedef JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable> ThreadMemPool;
2025-11-30 14:23:42 -08:00
JASTaskThread(int priority, int msgCount, u32 stackSize);
void* allocCallStack(JASThreadCallback callback, void* msg);
void* allocCallStack(JASThreadCallback callback, const void* msg, u32 msgSize);
int sendCmdMsg(JASThreadCallback callback, void* msg);
int sendCmdMsg(JASThreadCallback callback, const void* msg, u32 msgSize);
void pause(bool);
2022-06-01 03:49:32 -07:00
2025-11-30 14:23:42 -08:00
virtual ~JASTaskThread();
virtual void* run();
2022-06-01 03:49:32 -07:00
/* 0x7C */ OSThreadQueue threadQueue_;
2022-06-01 03:49:32 -07:00
/* 0x84 */ bool field_0x84;
};
2021-03-28 22:49:05 +02:00
#endif /* JASTASKTHREAD_H */