Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
SoundThread.h
Go to the documentation of this file.
1#ifndef NW4HBM_SND_SOUND_THREAD_H
2#define NW4HBM_SND_SOUND_THREAD_H
3
4#include <revolution/types.h>
5
6#include "AxManager.h"
7
8#include "../ut/LinkList.h"
9#include "../ut/inlines.h"
10
14
15namespace nw4hbm {
16 namespace snd {
17 namespace detail {
18
20 public:
21 class Callback {
22 public:
24
25 /* 0x08 */ virtual ~Callback() {}
26 /* 0x0C */ virtual void UpdatePlayer() {}
27 /* 0x10 */ virtual void EndSoundFrame() {}
28 };
29 typedef ut::LinkList<Callback, offsetof(Callback, mLink)> CallbackList;
30
32
33 bool Create(s32 priority);
35
37
38 private:
44
45 static const int MSG_QUEUE_CAPACITY = 8;
46
48
50
52
53 static void AxCallback();
54 static void* SoundThreadFunc(void* arg);
55
56 void Lock() { OSLockMutex(&mMutex); }
58
59 private:
60 /* 0x0000 */ OSThread mThread;
63 /* 0x2320 */ mutable OSMutex mMutex;
68 /* 0x2390 */ u32 mProcessTick;
69 /* 0x2394 */ bool mCreateFlag;
70 };
71
72 } // namespace detail
73 } // namespace snd
74} // namespace nw4hbm
75
76#endif
virtual void UpdatePlayer()
Definition SoundThread.h:26
virtual ~Callback()
Definition SoundThread.h:25
ut::LinkListNode mLink
Definition SoundThread.h:23
virtual void EndSoundFrame()
Definition SoundThread.h:27
Definition SoundThread.h:19
~SoundThread()
Definition SoundThread.h:49
CallbackList mCallbackList
Definition SoundThread.h:67
ut::LinkList< Callback, offsetof(Callback, mLink)> CallbackList
Definition SoundThread.h:29
u64 mThreadStack[THREAD_STACK_SIZE]
Definition SoundThread.h:61
void Lock()
Definition SoundThread.h:56
void Unlock()
Definition SoundThread.h:57
OSMutex mMutex
Definition SoundThread.h:63
OSThread mThread
Definition SoundThread.h:60
SoundThread()
Definition SoundThread.h:47
u32 mProcessTick
Definition SoundThread.h:68
OSMutex & GetSoundMutex()
Definition SoundThread.h:36
static SoundThread & GetInstance()
OSMessage mMsgBuffer[MSG_QUEUE_CAPACITY]
Definition SoundThread.h:65
AxManager::CallbackListNode mAxCallbackNode
Definition SoundThread.h:66
ThreadMessage
Definition SoundThread.h:39
@ MSG_SHUTDOWN
Definition SoundThread.h:42
@ MSG_AX_CALLBACK
Definition SoundThread.h:41
@ MSG_NONE
Definition SoundThread.h:40
static void * SoundThreadFunc(void *arg)
bool mCreateFlag
Definition SoundThread.h:69
static const int MSG_QUEUE_CAPACITY
Definition SoundThread.h:45
OSThreadQueue mThreadQueue
Definition SoundThread.h:62
OSMessageQueue mMsgQueue
Definition SoundThread.h:64
Definition LinkList.h:23
void * OSMessage
Definition OSMessage.h:13
void OSUnlockMutex(OSMutex *mutex)
Definition OSMutex.c:86
void OSLockMutex(OSMutex *mutex)
Definition OSMutex.c:58
static DVDLowCallback Callback
Definition dvdlow.c:12
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
unsigned long long int u64
Definition types.h:14
signed long s32
Definition types.h:11
static const int THREAD_STACK_SIZE
Definition snd_types.h:45
Definition HBMAnmController.h:6
Definition OSMessage.h:18
Definition OSMutex.h:13
Definition OSThread.h:22
Definition OSThread.h:42