목차

Wwise SDK 2018.1.11
AkCallback.h
Go to the documentation of this file.
1 /*******************************************************************************
2 The content of this file includes portions of the AUDIOKINETIC Wwise Technology
3 released in source code form as part of the SDK installer package.
4 
5 Commercial License Usage
6 
7 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology
8 may use this file in accordance with the end user license agreement provided
9 with the software or, alternatively, in accordance with the terms contained in a
10 written agreement between you and Audiokinetic Inc.
11 
12 Apache License Usage
13 
14 Alternatively, this file may be used under the Apache License, Version 2.0 (the
15 "Apache License"); you may not use this file except in compliance with the
16 Apache License. You may obtain a copy of the Apache License at
17 http://www.apache.org/licenses/LICENSE-2.0.
18 
19 Unless required by applicable law or agreed to in writing, software distributed
20 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
21 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for
22 the specific language governing permissions and limitations under the License.
23 
24  Version: <VERSION> Build: <BUILDNUMBER>
25  Copyright (c) <COPYRIGHTYEAR> Audiokinetic Inc.
26 *******************************************************************************/
27 
28 // AkCallback.h
29 
30 /// \file
31 /// Declaration of callback prototypes
32 
33 
34 #ifndef _AK_CALLBACK_H_
35 #define _AK_CALLBACK_H_
36 
39 
40 namespace AK
41 {
42  class IAkGlobalPluginContext;
43  class IAkMixerInputContext;
44  class IAkMixerPluginContext;
45 }
46 
47 /// Type of callback. Used as a bitfield in methods AK::SoundEngine::PostEvent() and AK::SoundEngine::DynamicSequence::Open().
49 {
50  AK_EndOfEvent = 0x0001, ///< Callback triggered when reaching the end of an event. AkCallbackInfo can be cast to AkEventCallbackInfo.
51  AK_EndOfDynamicSequenceItem = 0x0002, ///< Callback triggered when reaching the end of a dynamic sequence item. AkCallbackInfo can be cast to AkDynamicSequenceItemCallbackInfo.
52  AK_Marker = 0x0004, ///< Callback triggered when encountering a marker during playback. AkCallbackInfo can be cast to AkMarkerCallbackInfo.
53  AK_Duration = 0x0008, ///< Callback triggered when the duration of the sound is known by the sound engine. AkCallbackInfo can be cast to AkDurationCallbackInfo.
54 
55  AK_SpeakerVolumeMatrix = 0x0010, ///< Callback triggered at each frame, letting the client modify the speaker volume matrix. AkCallbackInfo can be cast to AkSpeakerVolumeMatrixCallbackInfo.
56 
57  AK_Starvation = 0x0020, ///< Callback triggered when playback skips a frame due to stream starvation. AkCallbackInfo can be cast to AkEventCallbackInfo.
58 
59  AK_MusicPlaylistSelect = 0x0040, ///< Callback triggered when music playlist container must select the next item to play. AkCallbackInfo can be cast to AkMusicPlaylistCallbackInfo.
60  AK_MusicPlayStarted = 0x0080, ///< Callback triggered when a "Play" or "Seek" command has been executed ("Seek" commands are issued from AK::SoundEngine::SeekOnEvent()). Applies to objects of the Interactive-Music Hierarchy only. AkCallbackInfo can be cast to AkEventCallbackInfo.
61 
62  AK_MusicSyncBeat = 0x0100, ///< Enable notifications on Music Beat. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
63  AK_MusicSyncBar = 0x0200, ///< Enable notifications on Music Bar. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
64  AK_MusicSyncEntry = 0x0400, ///< Enable notifications on Music Entry Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
65  AK_MusicSyncExit = 0x0800, ///< Enable notifications on Music Exit Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
66  AK_MusicSyncGrid = 0x1000, ///< Enable notifications on Music Grid. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
67  AK_MusicSyncUserCue = 0x2000, ///< Enable notifications on Music Custom Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
68  AK_MusicSyncPoint = 0x4000, ///< Enable notifications on Music switch transition synchronization point. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
69  AK_MusicSyncAll = 0x7f00, ///< Use this flag if you want to receive all notifications concerning AK_MusicSync registration.
70 
71  AK_MIDIEvent = 0x10000, ///< Enable notifications for MIDI events. AkCallbackInfo can be cast to AkMIDIEventCallbackInfo.
72 
73  AK_CallbackBits = 0xfffff, ///< Bitmask for all callback types.
74 
75  // Not callback types, but need to be part of same bitfield for AK::SoundEngine::PostEvent().
76  AK_EnableGetSourcePlayPosition = 0x100000, ///< Enable play position information for use by AK::SoundEngine::GetSourcePlayPosition().
77  AK_EnableGetMusicPlayPosition = 0x200000, ///< Enable play position information of music objects, queried via AK::MusicEngine::GetPlayingSegmentInfo().
78  AK_EnableGetSourceStreamBuffering = 0x400000 ///< Enable stream buffering information for use by AK::SoundEngine::GetSourceStreamBuffering().
79 };
80 
81 /// Callback information structure used as base for all notifications handled by \ref AkCallbackFunc.
82 /// \sa
83 /// - AK::SoundEngine::PostEvent()
84 /// - \ref soundengine_events
86 {
87  void * pCookie; ///< User data, passed to PostEvent()
88  AkGameObjectID gameObjID; ///< Game object ID
89 };
90 
91 /// Callback information structure corresponding to \ref AK_EndOfEvent, \ref AK_MusicPlayStarted and \ref AK_Starvation.
92 /// \sa
93 /// - AK::SoundEngine::PostEvent()
94 /// - \ref soundengine_events
96 {
97  AkPlayingID playingID; ///< Playing ID of Event, returned by PostEvent()
98  AkUniqueID eventID; ///< Unique ID of Event, passed to PostEvent()
99 };
100 
101 /// Callback information structure corresponding to \ref AkCallbackType::AK_MIDIEvent
102 /// \sa
103 /// - AK::SoundEngine::PostEvent()
104 /// - \ref soundengine_events
106 {
107  AkMIDIEvent midiEvent; ///< MIDI event triggered by event.
108 };
109 
110 
111 /// Callback information structure corresponding to \ref AK_Marker.
112 /// \sa
113 /// - AK::SoundEngine::PostEvent()
114 /// - \ref soundengine_events
115 /// - \ref soundengine_markers
117 {
118  AkUInt32 uIdentifier; ///< Cue point identifier
119  AkUInt32 uPosition; ///< Position in the cue point (unit: sample frames)
120  const char* strLabel; ///< Label of the marker, read from the file
121 };
122 
123 /// Callback information structure corresponding to \ref AK_Duration.
124 /// \sa
125 /// - AK::SoundEngine::PostEvent()
126 /// - \ref soundengine_events
128 {
129  AkReal32 fDuration; ///< Duration of the sound (unit: milliseconds)
130  AkReal32 fEstimatedDuration; ///< Estimated duration of the sound depending on source settings such as pitch. (unit: milliseconds)
131  AkUniqueID audioNodeID; ///< Audio Node ID of playing item
132  AkUniqueID mediaID; ///< Media ID of playing item. (corresponds to 'ID' attribute of 'File' element in SoundBank metadata file)
133  bool bStreaming; ///< True if source is streaming, false otherwise.
134 };
135 
136 /// Callback information structure corresponding to \ref AK_EndOfDynamicSequenceItem.
137 /// \sa
138 /// - AK::SoundEngine::PostEvent()
139 /// - AK::SoundEngine::DynamicSequence::Open()
140 /// - \ref soundengine_events
142 {
143  AkPlayingID playingID; ///< Playing ID of Dynamic Sequence, returned by AK::SoundEngine:DynamicSequence::Open()
144  AkUniqueID audioNodeID; ///< Audio Node ID of finished item
145  void* pCustomInfo; ///< Custom info passed to the DynamicSequence::Open function
146 };
147 
148 /// Callback information structure corresponding to \ref AK_SpeakerVolumeMatrix, and passed to callbacks registered in RegisterBusVolumeCallback()
149 /// or PostEvent() with AK_SpeakerVolumeMatrix. These callbacks are called at every audio frame for every connection from an input (voice
150 /// or bus) to an output bus (standard or auxiliary), at the point when an input signal is about to be mixed into a mixing bus, but just before
151 /// having been scaled in accordance to volumes authored in Wwise. The volumes are passed via this structure as pointers because they can be modified
152 /// in the callbacks. They are factored into two linear values ([0..1]): a common base value (pfBaseVolume), that is channel-agnostic and represents
153 /// the collapsed gain of all volume changes in Wwise (sliders, actions, RTPC, attenuations, ...), and a matrix of gains per input/output channel,
154 /// which depends on spatialization. Use the methods of AK::SpeakerVolumes::Matrix, defined in AkCommonDefs.h, to perform operations on them.
155 /// Access each input channel of the volumes matrix with AK::SpeakerVolumes::Matrix::GetChannel(), passing it the input and output channel configuration.
156 /// Then, you may access each element of the output vector using the standard bracket [] operator. See AK::SpeakerVolumes for more details.
157 /// It is crucial that the processing done in the callback be lightweight and non-blocking.
158 /// \sa
159 /// - \ref goingfurther_speakermatrixcallback
160 /// - AK::SoundEngine::PostEvent()
161 /// - \ref soundengine_events
162 /// - AK::SoundEngine::RegisterBusVolumeCallback()
164 {
165  AK::SpeakerVolumes::MatrixPtr pVolumes; ///< Pointer to volume matrix describing the contribution of each source channel to destination channels. Use methods of AK::SpeakerVolumes::Matrix to interpret them.
166  AkChannelConfig inputConfig; ///< Channel configuration of the voice/bus.
167  AkChannelConfig outputConfig; ///< Channel configuration of the output bus.
168  AkReal32 * pfBaseVolume; ///< Base volume, common to all channels.
169  AkReal32 * pfEmitterListenerVolume; ///< Emitter-listener pair-specific gain. When there are multiple emitter-listener pairs, this volume equals 1, and pair gains are applied directly on the channel volume matrix pVolumes.
170  AK::IAkMixerInputContext * pContext; ///< Context of the current voice/bus about to be mixed into the output bus with specified base volume and volume matrix.
171  AK::IAkMixerPluginContext * pMixerContext; ///< Output mixing bus context. Use it to access a few useful panning and mixing services, as well as the ID of the output bus. NULL if pContext is the master audio bus.
172 };
173 
174 /// Callback information structure corresponding to \ref AK_MusicPlaylistSelect.
175 /// Called when a music playlist container must select its next item to play.
176 /// The members uPlaylistSelection and uPlaylistItemDone are set by the sound
177 /// engine before the callback function call. They are set to the next item
178 /// selected by the sound engine. They are to be modified by the callback
179 /// function if the selection is to be changed.
180 /// \sa
181 /// - \ref soundengine_events
182 /// - AK::SoundEngine::PostEvent()
183 /// - \ref soundengine_music_callbacks
185 {
186  AkUniqueID playlistID; ///< ID of playlist node
187  AkUInt32 uNumPlaylistItems; ///< Number of items in playlist node (may be segments or other playlists)
188  AkUInt32 uPlaylistSelection; ///< Selection: set by sound engine, modified by callback function (if not in range 0 <= uPlaylistSelection < uNumPlaylistItems then ignored).
189  AkUInt32 uPlaylistItemDone; ///< Playlist node done: set by sound engine, modified by callback function (if set to anything but 0 then the current playlist item is done, and uPlaylistSelection is ignored)
190 };
191 
192 /// Structure used to query info on active playing segments.
194 {
195  AkTimeMs iCurrentPosition; ///< Current position of the segment, relative to the Entry Cue, in milliseconds. Range is [-iPreEntryDuration, iActiveDuration+iPostExitDuration].
196  AkTimeMs iPreEntryDuration; ///< Duration of the pre-entry region of the segment, in milliseconds.
197  AkTimeMs iActiveDuration; ///< Duration of the active region of the segment (between the Entry and Exit Cues), in milliseconds.
198  AkTimeMs iPostExitDuration; ///< Duration of the post-exit region of the segment, in milliseconds.
199  AkTimeMs iRemainingLookAheadTime;///< Number of milliseconds remaining in the "looking-ahead" state of the segment, when it is silent but streamed tracks are being prefetched.
200  AkReal32 fBeatDuration; ///< Beat Duration in seconds.
201  AkReal32 fBarDuration; ///< Bar Duration in seconds.
202  AkReal32 fGridDuration; ///< Grid duration in seconds.
203  AkReal32 fGridOffset; ///< Grid offset in seconds.
204 };
205 
206 /// Callback information structure corresponding to \ref AK_MusicSyncEntry, \ref AK_MusicSyncBeat, \ref AK_MusicSyncBar, \ref AK_MusicSyncExit, \ref AK_MusicSyncGrid, \ref AK_MusicSyncPoint and \ref AK_MusicSyncUserCue.
207 /// If you need the Tempo, you can compute it using the fBeatDuration
208 /// Tempo (beats per minute) = 60/fBeatDuration
209 /// \sa
210 /// - \ref soundengine_events
211 /// - AK::SoundEngine::PostEvent()
212 /// - \ref soundengine_music_callbacks
214 {
215  AkPlayingID playingID; ///< Playing ID of Event, returned by PostEvent()
216  AkSegmentInfo segmentInfo; ///< Segment information corresponding to the segment triggering this callback.
217  AkCallbackType musicSyncType; ///< Would be either \ref AK_MusicSyncEntry, \ref AK_MusicSyncBeat, \ref AK_MusicSyncBar, \ref AK_MusicSyncExit, \ref AK_MusicSyncGrid, \ref AK_MusicSyncPoint or \ref AK_MusicSyncUserCue.
218  char * pszUserCueName; ///< Cue name (UTF-8 string). Set for notifications AK_MusicSyncUserCue. NULL if cue has no name.
219 };
220 
221 /// Function called on completion of an event, or when a marker is reached.
222 /// \param in_eType Type of callback.
223 /// \param in_pCallbackInfo Pointer to structure containing callback information. This pointer is invalidated as soon as the callback function returns.
224 /// \remarks An event is considered completed once all of its actions have been executed and all the playbacks in this events are terminated.
225 /// \remarks This callback is executed from the audio processing thread. The processing time in the callback function should be minimal. Having too much processing time could result in slowing down the audio processing.
226 /// \remarks Before waiting on an \ref AK_EndOfEvent, make sure that the event is going to end.
227 /// Some events can be continuously playing or infinitely looping, and the callback will not occur unless a specific stop event is sent to terminate the event.
228 /// \sa
229 /// - AK::SoundEngine::PostEvent()
230 /// - AK::SoundEngine::DynamicSequence::Open()
231 /// - \ref soundengine_events
232 /// - \ref soundengine_markers
233 /// - \ref soundengine_music_callbacks
235  AkCallbackType in_eType, ///< Callback type.
236  AkCallbackInfo* in_pCallbackInfo ///< Structure containing desired information. You can cast it to the proper sub-type, depending on the callback type.
237  );
238 
239 /// Function called on at every audio frame for the specified registered busses.
240 /// \sa
241 /// - AkSpeakerVolumeMatrixCallbackInfo
242 /// - AK::SoundEngine::RegisterBusVolumeCallback()
243 /// - \ref goingfurther_speakermatrixcallback
245  AkSpeakerVolumeMatrixCallbackInfo* in_pCallbackInfo ///< Structure containing desired bus information.
246  );
247 
248 /// Function called on at every audio frame for the specified registered busses, just after metering has been computed.
249 /// \sa
250 /// - AK::SoundEngine::RegisterBusMeteringCallback()
251 /// - AK::IAkMetering
252 /// - \ref goingfurther_speakermatrixcallback
254  AK::IAkMetering * in_pMetering, ///< AK::IAkMetering interface for retrieving metering information.
255  AkChannelConfig in_channelConfig, ///< Channel configuration of the bus.
256  AkMeteringFlags in_eMeteringFlags ///< Metering flags that were asked for in RegisterBusMeteringCallback(). You may only access corresponding meter values from in_pMeteringInfo. Others will fail.
257  );
258 
259 /// Callback prototype used with asynchronous bank load/unload requests.
260 /// This function is called when the bank request has been processed
261 /// and indicates if it was successfully executed or if an error occurred.
262 /// \param in_bankID Identifier of the bank that was explicitly loaded/unloaded.
263 /// In the case of PrepareEvent() or PrepareGameSyncs(), this value contains
264 /// the AkUniqueID of the event/game sync that was prepared/unprepared, if the array contained only
265 /// one element. Otherwise, in_bankID equals AK_INVALID_UNIQUE_ID.
266 /// \param in_pInMemoryBankPtr Value returned when the unloaded bank was loaded using an in memory location
267 /// \param in_eLoadResult Result of the requested action.
268 /// - AK_Success: Load or unload successful.
269 /// - AK_IDNotFound: At least one of the event/game sync identifiers passed to PrepareEvent() or PrepareGameSyncs() does not exist.
270 /// - AK_InsufficientMemory: Insufficient memory to store bank data.
271 /// - AK_BankReadError: I/O error.
272 /// - AK_WrongBankVersion: Invalid bank version: make sure the version of Wwise that
273 /// you used to generate the SoundBanks matches that of the SDK you are currently using.
274 /// - AK_InvalidFile: File specified could not be opened.
275 /// - AK_InvalidParameter: Invalid parameter.
276 /// - AK_Fail: Load or unload failed for any other reason. (Most likely small allocation failure)
277 /// \param in_memPoolId ID of the memory pool in which the bank was explicitly loaded/unloaded.
278 /// AK_DEFAULT_POOL_ID is returned whenever this callback is issued from an implicit bank load (PrepareEvent(), PrepareGameSyncs()),
279 /// the bank memory was managed internally, or an error occurred.
280 /// \param in_pCookie Optional cookie that was passed to the bank request.
281 /// \remarks This callback is executed from the bank thread. The processing time in the callback function should be minimal. Having too much processing time could slow down the bank loading process.
282 /// \sa
283 /// - AK::SoundEngine::LoadBank()
284 /// - AK::SoundEngine::UnloadBank()
285 /// - AK::SoundEngine::PrepareEvent()
286 /// - AK::SoundEngine::PrepareGameSyncs()
287 /// - \ref soundengine_banks
289  AkUInt32 in_bankID,
290  const void * in_pInMemoryBankPtr,
291  AKRESULT in_eLoadResult,
292  AkMemPoolId in_memPoolId,
293  void * in_pCookie
294  );
295 
296 /// Bit field of various locations in the audio processing loop where the game can be called back.
298 {
299  AkGlobalCallbackLocation_Register = (1 << 0), ///< Right after successful registration of callback/plugin. Typically used by plugins along with AkGlobalCallbackLocation_Term for allocating memory for the lifetime of the sound engine.
300 
301  AkGlobalCallbackLocation_Begin = (1 << 1), ///< Start of audio processing. The number of frames about to be rendered depends on the sink/end-point and can be zero.
302 
303  AkGlobalCallbackLocation_PreProcessMessageQueueForRender = (1 << 2), ///< Start of frame rendering, before having processed game messages.
304  AkGlobalCallbackLocation_PostMessagesProcessed = (1 << 3), ///< After one or more messages have been processed, but before updating game object and listener positions internally.
305  AkGlobalCallbackLocation_BeginRender = (1 << 4), ///< Start of frame rendering, after having processed game messages.
306  AkGlobalCallbackLocation_EndRender = (1 << 5), ///< End of frame rendering.
307 
308  AkGlobalCallbackLocation_End = (1 << 6), ///< End of audio processing.
309 
310  AkGlobalCallbackLocation_Term = (1 << 7), ///< Sound engine termination.
311 
312  AkGlobalCallbackLocation_Monitor = (1 << 8), /// Send monitor data
313  AkGlobalCallbackLocation_MonitorRecap = (1 << 9), /// Send monitor data connection to recap.
314 
315  // IMPORTANT: Keep in sync with number of locations.
316  AkGlobalCallbackLocation_Num = 10 ///< Total number of global callback locations.
317 };
318 
319 /// Callback prototype used for global callback registration.
320 /// This callback may be called from various locations within the audio processing loop. The exact location from which it is called is passed in in_eLocation, and corresponds to one of the values
321 /// that were passed to RegisterGlobalCallback(). See the possible values of AkGlobalCallbackLocation for more details about the available locations.
322 /// \remarks This callback is normally executed from the main audio thread. The processing time in the callback function should be minimal. Having too much processing time could cause voice starvation.
323 /// \sa
324 /// - AK::SoundEngine::RegisterGlobalCallback()
325 /// - AK::SoundEngine::UnregisterGlobalCallback()
327  AK::IAkGlobalPluginContext * in_pContext, ///< Engine context.
328  AkGlobalCallbackLocation in_eLocation, ///< Location where this callback is fired.
329  void * in_pCookie ///< User cookie passed to AK::SoundEngine::RegisterGlobalCallback().
330  );
331 
332 namespace AK
333 {
335  {
336  AkAudioDeviceEvent_Initialization, ///< Sent after an Audio Device has initialized. Initialization might have failed, check the AKRESULT.
337  AkAudioDeviceEvent_Removal, ///< Audio device was removed through explicit call (AK::SoundEngine::RemoveOutput or AK::SoundEngine::Term)
338  AkAudioDeviceEvent_SystemRemoval ///< Audio device was removed because of a system event (disconnection), hardware or driver problem. Check the AKRESULT when called through AkDeviceStatusCallbackFunc, it may give more context.
339  };
340 
341  /// Callback for Audio Device status changes.
343  AK::IAkGlobalPluginContext * in_pContext, ///< Engine context.
344  AkUniqueID in_idAudioDeviceShareset, ///< The audio device shareset attached, as passed to AK::SoundEngine::AddOutput or AK::SoundEngine::Init
345  AkUInt32 in_idDeviceID, ///< The audio device specific id, as passed to AK::SoundEngine::AddOutput or AK::SoundEngine::Init
346  AkAudioDeviceEvent in_idEvent, ///< The event for which this callback was called. See AK::AkAudioDeviceEvent. AKRESULT may provide more information.
347  AKRESULT in_AkResult ///< Result of the last operation.
348  );
349 }
350 
351 #endif // _AK_CALLBACK_H_
352 
Start of frame rendering, after having processed game messages.
Definition: AkCallback.h:305
#define AK_CALLBACK(__TYPE__, __NAME__)
Structure used to query info on active playing segments.
Definition: AkCallback.h:193
AkUniqueID eventID
Unique ID of Event, passed to PostEvent()
Definition: AkCallback.h:98
Callback triggered at each frame, letting the client modify the speaker volume matrix....
Definition: AkCallback.h:55
AkTimeMs iPreEntryDuration
Duration of the pre-entry region of the segment, in milliseconds.
Definition: AkCallback.h:196
Callback triggered when encountering a marker during playback. AkCallbackInfo can be cast to AkMarker...
Definition: AkCallback.h:52
End of frame rendering.
Definition: AkCallback.h:306
Send monitor data connection to recap.
Definition: AkCallback.h:316
AkReal32 * pfBaseVolume
Base volume, common to all channels.
Definition: AkCallback.h:168
Start of audio processing. The number of frames about to be rendered depends on the sink/end-point an...
Definition: AkCallback.h:301
Enable notifications on Music Custom Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
Definition: AkCallback.h:67
AkUInt32 uPlaylistItemDone
Playlist node done: set by sound engine, modified by callback function (if set to anything but 0 then...
Definition: AkCallback.h:189
Callback triggered when a "Play" or "Seek" command has been executed ("Seek" commands are issued from...
Definition: AkCallback.h:60
Right after successful registration of callback/plugin. Typically used by plugins along with AkGlobal...
Definition: AkCallback.h:299
Sent after an Audio Device has initialized. Initialization might have failed, check the AKRESULT.
Definition: AkCallback.h:336
End of audio processing.
Definition: AkCallback.h:308
Enable notifications on Music Entry Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
Definition: AkCallback.h:64
AkUInt32 uIdentifier
Cue point identifier.
Definition: AkCallback.h:118
Enable notifications for MIDI events. AkCallbackInfo can be cast to AkMIDIEventCallbackInfo.
Definition: AkCallback.h:71
bool bStreaming
True if source is streaming, false otherwise.
Definition: AkCallback.h:133
AkReal32 fBeatDuration
Beat Duration in seconds.
Definition: AkCallback.h:200
AKRESULT
Standard function call result.
Definition: AkTypes.h:126
void(* AkGlobalCallbackFunc)(AK::IAkGlobalPluginContext *in_pContext, AkGlobalCallbackLocation in_eLocation, void *in_pCookie)
Definition: AkCallback.h:326
AK::IAkMixerInputContext * pContext
Context of the current voice/bus about to be mixed into the output bus with specified base volume and...
Definition: AkCallback.h:170
AkUInt32 uPosition
Position in the cue point (unit: sample frames)
Definition: AkCallback.h:119
void(* AkBankCallbackFunc)(AkUInt32 in_bankID, const void *in_pInMemoryBankPtr, AKRESULT in_eLoadResult, AkMemPoolId in_memPoolId, void *in_pCookie)
Definition: AkCallback.h:288
Callback triggered when the duration of the sound is known by the sound engine. AkCallbackInfo can be...
Definition: AkCallback.h:53
Audiokinetic namespace.
Sound engine termination.
Definition: AkCallback.h:310
AkTimeMs iRemainingLookAheadTime
Number of milliseconds remaining in the "looking-ahead" state of the segment, when it is silent but s...
Definition: AkCallback.h:199
Global plugin context used for plugin registration/initialization. Games query this interface from th...
Definition: IAkPlugin.h:1116
AkChannelConfig outputConfig
Channel configuration of the output bus.
Definition: AkCallback.h:167
Enable notifications on Music Bar. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
Definition: AkCallback.h:63
Bitmask for all callback types.
Definition: AkCallback.h:73
Use this flag if you want to receive all notifications concerning AK_MusicSync registration.
Definition: AkCallback.h:69
Callback triggered when playback skips a frame due to stream starvation. AkCallbackInfo can be cast t...
Definition: AkCallback.h:57
AkUniqueID audioNodeID
Audio Node ID of finished item.
Definition: AkCallback.h:144
AkMeteringFlags
Metering flags. Used for specifying bus metering, through AK::SoundEngine::RegisterBusVolumeCallback(...
Definition: AkTypes.h:812
AkCallbackType
Type of callback. Used as a bitfield in methods AK::SoundEngine::PostEvent() and AK::SoundEngine::Dyn...
Definition: AkCallback.h:48
AkUInt32 AkUniqueID
Unique 32-bit ID.
Definition: AkTypes.h:62
void * pCustomInfo
Custom info passed to the DynamicSequence::Open function.
Definition: AkCallback.h:145
AkCallbackType musicSyncType
Would be either AK_MusicSyncEntry, AK_MusicSyncBeat, AK_MusicSyncBar, AK_MusicSyncExit,...
Definition: AkCallback.h:217
AkTimeMs iPostExitDuration
Duration of the post-exit region of the segment, in milliseconds.
Definition: AkCallback.h:198
AkAudioDeviceEvent
Definition: AkCallback.h:334
Enable stream buffering information for use by AK::SoundEngine::GetSourceStreamBuffering().
Definition: AkCallback.h:78
void(* AkBusMeteringCallbackFunc)(AK::IAkMetering *in_pMetering, AkChannelConfig in_channelConfig, AkMeteringFlags in_eMeteringFlags)
Definition: AkCallback.h:253
AkReal32 fDuration
Duration of the sound (unit: milliseconds)
Definition: AkCallback.h:129
AkUInt64 AkGameObjectID
Game object ID.
Definition: AkTypes.h:70
AkReal32 * MatrixPtr
Volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel().
Definition: AkSpeakerVolumes.h:50
Enable notifications on Music Grid. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
Definition: AkCallback.h:66
Interface to retrieve information about an input of a mixer.
Definition: IAkPlugin.h:745
AkTimeMs iCurrentPosition
Current position of the segment, relative to the Entry Cue, in milliseconds. Range is [-iPreEntryDura...
Definition: AkCallback.h:195
AkTimeMs iActiveDuration
Duration of the active region of the segment (between the Entry and Exit Cues), in milliseconds.
Definition: AkCallback.h:197
AkGameObjectID gameObjID
Game object ID.
Definition: AkCallback.h:88
AkUInt32 uPlaylistSelection
Selection: set by sound engine, modified by callback function (if not in range 0 <= uPlaylistSelectio...
Definition: AkCallback.h:188
Interface to retrieve contextual information for a mixer.
Definition: IAkPlugin.h:392
void * pCookie
User data, passed to PostEvent()
Definition: AkCallback.h:87
AK::IAkMixerPluginContext * pMixerContext
Output mixing bus context. Use it to access a few useful panning and mixing services,...
Definition: AkCallback.h:171
AkUniqueID playlistID
ID of playlist node.
Definition: AkCallback.h:186
AkUInt32 uNumPlaylistItems
Number of items in playlist node (may be segments or other playlists)
Definition: AkCallback.h:187
Audio device was removed because of a system event (disconnection), hardware or driver problem....
Definition: AkCallback.h:338
AkReal32 fGridDuration
Grid duration in seconds.
Definition: AkCallback.h:202
Start of frame rendering, before having processed game messages.
Definition: AkCallback.h:303
AkGlobalCallbackLocation
Bit field of various locations in the audio processing loop where the game can be called back.
Definition: AkCallback.h:297
Callback triggered when music playlist container must select the next item to play....
Definition: AkCallback.h:59
AkUInt32 AkPlayingID
Playing ID.
Definition: AkTypes.h:65
AkPlayingID playingID
Playing ID of Dynamic Sequence, returned by AK::SoundEngine:DynamicSequence::Open()
Definition: AkCallback.h:143
Enable notifications on Music Beat. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
Definition: AkCallback.h:62
AkChannelConfig inputConfig
Channel configuration of the voice/bus.
Definition: AkCallback.h:166
AkMIDIEvent midiEvent
MIDI event triggered by event.
Definition: AkCallback.h:107
AkUniqueID mediaID
Media ID of playing item. (corresponds to 'ID' attribute of 'File' element in SoundBank metadata file...
Definition: AkCallback.h:132
Audio device was removed through explicit call (AK::SoundEngine::RemoveOutput or AK::SoundEngine::Ter...
Definition: AkCallback.h:337
AkPlayingID playingID
Playing ID of Event, returned by PostEvent()
Definition: AkCallback.h:215
Interface to retrieve metering information about a buffer.
Definition: AkCommonDefs.h:205
Enable play position information of music objects, queried via AK::MusicEngine::GetPlayingSegmentInfo...
Definition: AkCallback.h:77
AkSegmentInfo segmentInfo
Segment information corresponding to the segment triggering this callback.
Definition: AkCallback.h:216
void(* AkBusCallbackFunc)(AkSpeakerVolumeMatrixCallbackInfo *in_pCallbackInfo)
Definition: AkCallback.h:244
AkReal32 fEstimatedDuration
Estimated duration of the sound depending on source settings such as pitch. (unit: milliseconds)
Definition: AkCallback.h:130
Enable play position information for use by AK::SoundEngine::GetSourcePlayPosition().
Definition: AkCallback.h:76
AK::SpeakerVolumes::MatrixPtr pVolumes
Pointer to volume matrix describing the contribution of each source channel to destination channels....
Definition: AkCallback.h:165
After one or more messages have been processed, but before updating game object and listener position...
Definition: AkCallback.h:304
void(* AkDeviceStatusCallbackFunc)(AK::IAkGlobalPluginContext *in_pContext, AkUniqueID in_idAudioDeviceShareset, AkUInt32 in_idDeviceID, AkAudioDeviceEvent in_idEvent, AKRESULT in_AkResult)
Callback for Audio Device status changes.
Definition: AkCallback.h:342
const char * strLabel
Label of the marker, read from the file.
Definition: AkCallback.h:120
uint32_t AkUInt32
Unsigned 32-bit integer.
Definition: AkTypes.h:79
Callback triggered when reaching the end of a dynamic sequence item. AkCallbackInfo can be cast to Ak...
Definition: AkCallback.h:51
AkUniqueID audioNodeID
Audio Node ID of playing item.
Definition: AkCallback.h:131
AkReal32 * pfEmitterListenerVolume
Emitter-listener pair-specific gain. When there are multiple emitter-listener pairs,...
Definition: AkCallback.h:169
void(* AkCallbackFunc)(AkCallbackType in_eType, AkCallbackInfo *in_pCallbackInfo)
Definition: AkCallback.h:234
Enable notifications on Music switch transition synchronization point. AkCallbackInfo can be cast to ...
Definition: AkCallback.h:68
Enable notifications on Music Exit Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo.
Definition: AkCallback.h:65
char * pszUserCueName
Cue name (UTF-8 string). Set for notifications AK_MusicSyncUserCue. NULL if cue has no name.
Definition: AkCallback.h:218
AkPlayingID playingID
Playing ID of Event, returned by PostEvent()
Definition: AkCallback.h:97
float AkReal32
32-bit floating point
Definition: AkTypes.h:97
AkInt32 AkMemPoolId
Memory pool ID.
Definition: AkTypes.h:72
Callback triggered when reaching the end of an event. AkCallbackInfo can be cast to AkEventCallbackIn...
Definition: AkCallback.h:50
AkInt32 AkTimeMs
Time in ms.
Definition: AkTypes.h:66
AkReal32 fGridOffset
Grid offset in seconds.
Definition: AkCallback.h:203
AkReal32 fBarDuration
Bar Duration in seconds.
Definition: AkCallback.h:201