31        class AutoLock : 
private ut::NonCopyable
 
   36            AutoLock() { SoundThread::GetInstance().Lock(); }
 
   37            ~AutoLock() { SoundThread::GetInstance().Unlock(); }
 
 
   54            virtual void at_0x08();
 
   55            virtual void at_0x0c();
 
   56            virtual void at_0x10();
 
 
   74            virtual void OnUpdateFrameSoundThread() {}
 
   75            virtual void OnUpdateVoiceSoundThread() {}
 
   76            virtual void OnShutdownSoundThread() {}
 
 
   82        static SoundThread &GetInstance();
 
   85        bool Create(s32 priority, 
void *stack, ulong stackSize);
 
   88        void Lock() { OSLockMutex(&mMutex); }
 
   89        void Unlock() { OSUnlockMutex(&mMutex); }
 
   91        void RegisterPlayerCallback(PlayerCallback *callback);
 
   92        void UnregisterPlayerCallback(PlayerCallback *callback);
 
   99        static void AxCallbackFunc();
 
  100        void AxCallbackProc();
 
  102        static void *SoundThreadFunc(
void *arg);
 
  103        void SoundThreadProc();
 
  108        static int const MESSAGE_SHUTDOWN = 1 << 1;
 
  109        static int const MESSAGE_AX_CALLBACK = 1 << 0;
 
  110        static int const THREAD_MESSAGE_BUFSIZE = 4;
 
  117        OSMessage                       mMsgBuffer[THREAD_MESSAGE_BUFSIZE]; 
 
  120        AxManager::CallbackListNode     mAxCallbackNode;                    
 
  121        SoundFrameCallback::LinkList    mSoundFrameCallbackList;            
 
  122        PlayerCallback::LinkList        mPlayerCallbackList;