Version

menu_open

include/AK/Tools/Common/AkSyncCaller.h

Go to the documentation of this file.
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_

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise