버전
menu_open
link

include/AK/SoundEngine/Common/AkCallback.h

Go to the documentation of this file.
00001 
00002 //
00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved
00004 //
00006 
00007 // AkCallback.h
00008 
00011 
00012 
00013 #ifndef _AK_CALLBACK_H_
00014 #define _AK_CALLBACK_H_
00015 
00016 #include <AK/SoundEngine/Common/AkCommonDefs.h>
00017 #include <AK/SoundEngine/Common/AkMidiTypes.h>
00018 
00019 namespace AK
00020 {
00021     class IAkMixerInputContext;
00022     class IAkMixerPluginContext;
00023 }
00024 
00026 enum AkCallbackType
00027 {
00028     AK_EndOfEvent                   = 0x0001,   
00029     AK_EndOfDynamicSequenceItem     = 0x0002,   
00030     AK_Marker                       = 0x0004,   
00031     AK_Duration                     = 0x0008,   
00032 
00033     AK_SpeakerVolumeMatrix          = 0x0010,   
00034 
00035     AK_Starvation                   = 0x0020,   
00036 
00037     AK_MusicPlaylistSelect          = 0x0040,   
00038     AK_MusicPlayStarted             = 0x0080,   
00039 
00040     AK_MusicSyncBeat                = 0x0100,   
00041     AK_MusicSyncBar                 = 0x0200,   
00042     AK_MusicSyncEntry               = 0x0400,   
00043     AK_MusicSyncExit                = 0x0800,   
00044     AK_MusicSyncGrid                = 0x1000,   
00045     AK_MusicSyncUserCue             = 0x2000,   
00046     AK_MusicSyncPoint               = 0x4000,   
00047     AK_MusicSyncAll                 = 0x7f00,   
00048 
00049     AK_MidiEvent                    = 0x10000,  
00050 
00051     AK_CallbackBits                 = 0xfffff,  
00052 
00053     // Not callback types, but need to be part of same bitfield for AK::SoundEngine::PostEvent().
00054     AK_EnableGetSourcePlayPosition  = 0x100000, 
00055     AK_EnableGetMusicPlayPosition   = 0x200000, 
00056     AK_EnableGetSourceStreamBuffering = 0x400000    
00057 };
00058 
00063 struct AkCallbackInfo
00064 {
00065     void *          pCookie;        
00066     AkGameObjectID  gameObjID;      
00067 };
00068 
00073 struct AkEventCallbackInfo : public AkCallbackInfo
00074 {
00075     AkPlayingID     playingID;      
00076     AkUniqueID      eventID;        
00077 };
00078 
00083 struct AkMidiEventCallbackInfo : public AkEventCallbackInfo
00084 {
00085     AkMidiEvent     midiEvent;      
00086 };
00087 
00088 
00094 struct AkMarkerCallbackInfo : public AkEventCallbackInfo
00095 {
00096     AkUInt32    uIdentifier;        
00097     AkUInt32    uPosition;          
00098     const char* strLabel;           
00099 };
00100 
00105 struct AkDurationCallbackInfo : public AkEventCallbackInfo
00106 {
00107     AkReal32    fDuration;              
00108     AkReal32    fEstimatedDuration;     
00109     AkUniqueID  audioNodeID;            
00110     bool        bStreaming;             
00111 };
00112 
00118 struct AkDynamicSequenceItemCallbackInfo : public AkCallbackInfo
00119 {
00120     AkPlayingID playingID;          
00121     AkUniqueID  audioNodeID;        
00122     void*       pCustomInfo;        
00123 };
00124 
00140 struct AkSpeakerVolumeMatrixCallbackInfo : public AkEventCallbackInfo
00141 {
00142     AK::SpeakerVolumes::MatrixPtr pVolumes;     
00143     AkChannelConfig inputConfig;                
00144     AkChannelConfig outputConfig;               
00145     AkReal32 * pfBaseVolume;                    
00146     AkReal32 * pfEmitterListenerVolume;         
00147     AK::IAkMixerInputContext * pContext;        
00148     AK::IAkMixerPluginContext * pMixerContext;  
00149 };
00150 
00161 struct AkMusicPlaylistCallbackInfo : public AkEventCallbackInfo
00162 {
00163     AkUniqueID playlistID;          
00164     AkUInt32 uNumPlaylistItems;     
00165     AkUInt32 uPlaylistSelection;    
00166     AkUInt32 uPlaylistItemDone;     
00167 };
00168 
00176 struct AkMusicSyncCallbackInfo : public AkCallbackInfo
00177 {
00178     AkPlayingID playingID;          
00179     AkCallbackType musicSyncType;   
00180     AkReal32 fBeatDuration;         
00181     AkReal32 fBarDuration;          
00182     AkReal32 fGridDuration;         
00183     AkReal32 fGridOffset;           
00184     char *   pszUserCueName;        
00185 };
00186 
00200 AK_CALLBACK( void, AkCallbackFunc )( 
00201     AkCallbackType in_eType,                            
00202     AkCallbackInfo* in_pCallbackInfo                    
00203     );
00204 
00210 AK_CALLBACK( void, AkBusCallbackFunc )( 
00211     AkSpeakerVolumeMatrixCallbackInfo* in_pCallbackInfo 
00212     );
00213 
00219 AK_CALLBACK( void, AkBusMeteringCallbackFunc )( 
00220     AK::IAkMetering * in_pMetering,                     
00221     AkChannelConfig in_channelConfig,                   
00222     AkMeteringFlags in_eMeteringFlags                   
00223     );
00224 
00254 AK_CALLBACK( void, AkBankCallbackFunc )(
00255     AkUInt32        in_bankID,
00256     const void *    in_pInMemoryBankPtr,
00257     AKRESULT        in_eLoadResult,
00258     AkMemPoolId     in_memPoolId,
00259     void *          in_pCookie
00260     );
00261 
00267 AK_CALLBACK( void, AkGlobalCallbackFunc )(
00268     bool in_bLastCall
00269     );
00270 
00271 #endif // _AK_CALLBACK_H_
00272 

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요