00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00007 // AkSyncLoader.h 00008 00011 00012 #ifndef _AK_SYNC_CALLER_H_ 00013 #define _AK_SYNC_CALLER_H_ 00014 00015 #include <AK/Tools/Common/AkPlatformFuncs.h> 00016 00017 namespace AK 00018 { 00019 namespace SoundEngine 00020 { 00023 class AkSyncCaller 00024 { 00025 public: 00027 AKRESULT Init() 00028 { 00029 if ( AKPLATFORM::AkCreateEvent( m_hEvent ) != AK_Success ) 00030 { 00031 AKASSERT( !"Could not create synchronization event" ); 00032 return AK_Fail; 00033 } 00034 return AK_Success; 00035 } 00036 00038 AKRESULT Wait( AKRESULT in_eResult ) 00039 { 00040 if ( in_eResult != AK_Success ) 00041 { 00042 AKPLATFORM::AkDestroyEvent( m_hEvent ); 00043 return in_eResult; 00044 } 00045 00046 // Task queueing successful. Block until completion. 00047 AKPLATFORM::AkWaitForEvent( m_hEvent ); 00048 AKPLATFORM::AkDestroyEvent( m_hEvent ); 00049 00050 return m_eResult; 00051 } 00052 00054 inline void Done() { AKPLATFORM::AkSignalEvent( m_hEvent ); } 00055 00056 AKRESULT m_eResult; 00057 00058 private: 00059 AkEvent m_hEvent; 00060 }; 00061 } 00062 } 00063 00064 #endif // _AK_SYNC_CALLER_H_
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요