Wwise Version
Wwise SDK 2019.2.13
AkTypes.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 // AkTypes.h
29 
30 /// \file
31 /// Data type definitions.
32 
33 #ifndef _AK_DATA_TYPES_H_
34 #define _AK_DATA_TYPES_H_
35 
36 // Platform-specific section.
37 //----------------------------------------------------------------------------------------------------
38 #include <AK/AkPlatforms.h>
39 
40 
41 //----------------------------------------------------------------------------------------------------
42 
44 
45 #ifndef NULL
46  #ifdef __cplusplus
47  #define NULL 0
48  #else
49  #define NULL ((void *)0)
50  #endif
51 #endif
52 
53 #if defined(AK_CPU_X86_64) || defined(AK_CPU_ARM_64)
54 #define AK_POINTER_64
55 #endif // #if defined(AK_CPU_X86_64) || defined(AK_CPU_ARM_64)
56 
57 typedef AkUInt32 AkUniqueID; ///< Unique 32-bit ID
58 typedef AkUInt32 AkStateID; ///< State ID
59 typedef AkUInt32 AkStateGroupID; ///< State group ID
60 typedef AkUInt32 AkPlayingID; ///< Playing ID
61 typedef AkInt32 AkTimeMs; ///< Time in ms
62 typedef AkUInt16 AkPortNumber; ///< Port number
63 typedef AkReal32 AkPitchValue; ///< Pitch value
64 typedef AkReal32 AkVolumeValue; ///< Volume value( also apply to LFE )
65 typedef AkUInt64 AkGameObjectID; ///< Game object ID
66 typedef AkReal32 AkLPFType; ///< Low-pass filter type
67 typedef AkInt32 AkMemPoolId; ///< Memory pool ID
68 typedef AkUInt32 AkPluginID; ///< Source or effect plug-in ID
69 typedef AkUInt32 AkCodecID; ///< Codec plug-in ID
70 typedef AkUInt32 AkAuxBusID; ///< Auxilliary bus ID
71 typedef AkInt16 AkPluginParamID; ///< Source or effect plug-in parameter ID
72 typedef AkInt8 AkPriority; ///< Priority
73 typedef AkUInt16 AkDataCompID; ///< Data compression format ID
74 typedef AkUInt16 AkDataTypeID; ///< Data sample type ID
75 typedef AkUInt8 AkDataInterleaveID; ///< Data interleaved state ID
76 typedef AkUInt32 AkSwitchGroupID; ///< Switch group ID
77 typedef AkUInt32 AkSwitchStateID; ///< Switch ID
78 typedef AkUInt32 AkRtpcID; ///< Real time parameter control ID
79 typedef AkReal32 AkRtpcValue; ///< Real time parameter control value
80 typedef AkUInt32 AkBankID; ///< Run time bank ID
81 typedef AkUInt32 AkFileID; ///< Integer-type file identifier
82 typedef AkUInt32 AkDeviceID; ///< I/O device ID
83 typedef AkUInt32 AkTriggerID; ///< Trigger ID
84 typedef AkUInt32 AkArgumentValueID; ///< Argument value ID
85 typedef AkUInt32 AkChannelMask; ///< Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig.h.
86 typedef AkUInt32 AkModulatorID; ///< Modulator ID
87 typedef AkUInt32 AkAcousticTextureID; ///< Acoustic Texture ID
88 typedef AkUInt32 AkImageSourceID; ///< Image Source ID
89 typedef AkUInt64 AkOutputDeviceID; ///< Audio Output device ID
90 
91 // Constants.
92 static const AkPluginID AK_INVALID_PLUGINID = (AkPluginID)-1; ///< Invalid FX ID
93 static const AkGameObjectID AK_INVALID_GAME_OBJECT = (AkGameObjectID)-1; ///< Invalid game object (may also mean all game objects)
94 static const AkUniqueID AK_INVALID_UNIQUE_ID = 0; ///< Invalid unique 32-bit ID
95 static const AkRtpcID AK_INVALID_RTPC_ID = AK_INVALID_UNIQUE_ID;///< Invalid RTPC ID
96 static const AkPlayingID AK_INVALID_PLAYING_ID = AK_INVALID_UNIQUE_ID;///< Invalid playing ID
97 static const AkUInt32 AK_DEFAULT_SWITCH_STATE = 0; ///< Switch selected if no switch has been set yet
98 static const AkMemPoolId AK_INVALID_POOL_ID = -1; ///< Invalid pool ID
99 static const AkMemPoolId AK_DEFAULT_POOL_ID = -1; ///< Default pool ID, same as AK_INVALID_POOL_ID
100 static const AkAuxBusID AK_INVALID_AUX_ID = AK_INVALID_UNIQUE_ID;///< Invalid auxiliary bus ID (or no Aux bus ID)
101 static const AkFileID AK_INVALID_FILE_ID = (AkFileID)-1; ///< Invalid file ID
102 static const AkDeviceID AK_INVALID_DEVICE_ID = (AkDeviceID)-1; ///< Invalid streaming device ID
103 static const AkBankID AK_INVALID_BANK_ID = AK_INVALID_UNIQUE_ID;///< Invalid bank ID
104 static const AkArgumentValueID AK_FALLBACK_ARGUMENTVALUE_ID = 0; ///< Fallback argument value ID
105 static const AkChannelMask AK_INVALID_CHANNELMASK = 0; ///< Invalid channel mask
106 static const AkUInt32 AK_INVALID_OUTPUT_DEVICE_ID = AK_INVALID_UNIQUE_ID;///< Invalid Device ID
107 
108 // Priority.
109 static const AkPriority AK_DEFAULT_PRIORITY = 50; ///< Default sound / I/O priority
110 static const AkPriority AK_MIN_PRIORITY = 0; ///< Minimal priority value [0,100]
111 static const AkPriority AK_MAX_PRIORITY = 100; ///< Maximal priority value [0,100]
112 
113 // Default bank I/O settings.
114 static const AkPriority AK_DEFAULT_BANK_IO_PRIORITY = AK_DEFAULT_PRIORITY; ///< Default bank load I/O priority
115 static const AkReal32 AK_DEFAULT_BANK_THROUGHPUT = 1*1024*1024/1000.f; ///< Default bank load throughput (1 Mb/ms)
116 
117 // Bank version
118 static const AkUInt32 AK_SOUNDBANK_VERSION = 135; ///< Version of the soundbank reader
119 
120 /// Standard function call result.
121 enum AKRESULT
122 {
123  AK_NotImplemented = 0, ///< This feature is not implemented.
124  AK_Success = 1, ///< The operation was successful.
125  AK_Fail = 2, ///< The operation failed.
126  AK_PartialSuccess = 3, ///< The operation succeeded partially.
127  AK_NotCompatible = 4, ///< Incompatible formats
128  AK_AlreadyConnected = 5, ///< The stream is already connected to another node.
129  AK_InvalidFile = 7, ///< An unexpected value causes the file to be invalid.
130  AK_AudioFileHeaderTooLarge = 8, ///< The file header is too large.
131  AK_MaxReached = 9, ///< The maximum was reached.
132  AK_InvalidID = 14, ///< The ID is invalid.
133  AK_IDNotFound = 15, ///< The ID was not found.
134  AK_InvalidInstanceID = 16, ///< The InstanceID is invalid.
135  AK_NoMoreData = 17, ///< No more data is available from the source.
136  AK_InvalidStateGroup = 20, ///< The StateGroup is not a valid channel.
137  AK_ChildAlreadyHasAParent = 21, ///< The child already has a parent.
138  AK_InvalidLanguage = 22, ///< The language is invalid (applies to the Low-Level I/O).
139  AK_CannotAddItseflAsAChild = 23, ///< It is not possible to add itself as its own child.
140  AK_InvalidParameter = 31, ///< Something is not within bounds.
141  AK_ElementAlreadyInList = 35, ///< The item could not be added because it was already in the list.
142  AK_PathNotFound = 36, ///< This path is not known.
143  AK_PathNoVertices = 37, ///< Stuff in vertices before trying to start it
144  AK_PathNotRunning = 38, ///< Only a running path can be paused.
145  AK_PathNotPaused = 39, ///< Only a paused path can be resumed.
146  AK_PathNodeAlreadyInList = 40, ///< This path is already there.
147  AK_PathNodeNotInList = 41, ///< This path is not there.
148  AK_DataNeeded = 43, ///< The consumer needs more.
149  AK_NoDataNeeded = 44, ///< The consumer does not need more.
150  AK_DataReady = 45, ///< The provider has available data.
151  AK_NoDataReady = 46, ///< The provider does not have available data.
152  AK_InsufficientMemory = 52, ///< Memory error.
153  AK_Cancelled = 53, ///< The requested action was cancelled (not an error).
154  AK_UnknownBankID = 54, ///< Trying to load a bank using an ID which is not defined.
155  AK_BankReadError = 56, ///< Error while reading a bank.
156  AK_InvalidSwitchType = 57, ///< Invalid switch type (used with the switch container)
157  AK_FormatNotReady = 63, ///< Source format not known yet.
158  AK_WrongBankVersion = 64, ///< The bank version is not compatible with the current bank reader.
159  AK_FileNotFound = 66, ///< File not found.
160  AK_DeviceNotReady = 67, ///< Specified ID doesn't match a valid hardware device: either the device doesn't exist or is disabled.
161  AK_BankAlreadyLoaded = 69, ///< The bank load failed because the bank is already loaded.
162  AK_RenderedFX = 71, ///< The effect on the node is rendered.
163  AK_ProcessNeeded = 72, ///< A routine needs to be executed on some CPU.
164  AK_ProcessDone = 73, ///< The executed routine has finished its execution.
165  AK_MemManagerNotInitialized = 74, ///< The memory manager should have been initialized at this point.
166  AK_StreamMgrNotInitialized = 75, ///< The stream manager should have been initialized at this point.
167  AK_SSEInstructionsNotSupported = 76,///< The machine does not support SSE instructions (required on PC).
168  AK_Busy = 77, ///< The system is busy and could not process the request.
169  AK_UnsupportedChannelConfig = 78, ///< Channel configuration is not supported in the current execution context.
170  AK_PluginMediaNotAvailable = 79, ///< Plugin media is not available for effect.
171  AK_MustBeVirtualized = 80, ///< Sound was Not Allowed to play.
172  AK_CommandTooLarge = 81, ///< SDK command is too large to fit in the command queue.
173  AK_RejectedByFilter = 82, ///< A play request was rejected due to the MIDI filter parameters.
174  AK_InvalidCustomPlatformName= 83, ///< Detecting incompatibility between Custom platform of banks and custom platform of connected application
175  AK_DLLCannotLoad = 84, ///< Plugin DLL could not be loaded, either because it is not found or one dependency is missing.
176  AK_DLLPathNotFound = 85, ///< Plugin DLL search path could not be found.
177  AK_NoJavaVM = 86, ///< No Java VM provided in AkInitSettings.
178  AK_OpenSLError = 87, ///< OpenSL returned an error. Check error log for more details.
179  AK_PluginNotRegistered = 88, ///< Plugin is not registered. Make sure to implement a AK::PluginRegistration class for it and use AK_STATIC_LINK_PLUGIN in the game binary.
180  AK_DataAlignmentError = 89, ///< A pointer to audio data was not aligned to the platform's required alignment (check AkTypes.h in the platform-specific folder)
181  AK_DeviceNotCompatible = 90, ///< Incompatible Audio device.
182  AK_DuplicateUniqueID = 91, ///< Two Wwise objects share the same ID.
183  AK_InitBankNotLoaded = 92, ///< The Init bank was not loaded yet, the sound engine isn't completely ready yet.
184  AK_DeviceNotFound = 93, ///< The specified device ID does not match with any of the output devices that the sound engine is currently using.
185  AK_PlayingIDNotFound = 94, ///< Calling a function with a playing ID that is not known.
186  AK_InvalidFloatValue = 95, ///< One parameter has a invalid float value such as NaN, INF or FLT_MAX.
187  AK_FileFormatMismatch = 96, ///< Media file format unexpected
188  AK_NoDistinctListener = 97, ///< No distinct listener provided for AddOutput
189  AK_ACP_Error = 98, ///< Generic XMA decoder error.
190  AK_ResourceInUse = 99, ///< Resource is in use and cannot be released.
191 };
192 
193 /// Game sync group type
195 {
196  // should stay set as Switch = 0 and State = 1
197  AkGroupType_Switch = 0, ///< Type switch
198  AkGroupType_State = 1 ///< Type state
199 };
200 
201 /// Configured audio settings
203 {
204  AkUInt32 uNumSamplesPerFrame; ///< Number of samples per audio frame (256, 512, 1024 or 2048).
205  AkUInt32 uNumSamplesPerSecond; ///< Number of samples per second.
206 };
207 
209 {
210  AkDeviceState_Unknown = 0, ///< The audio device state is unknown or invalid.
211  AkDeviceState_Active = 1 << 0, ///< The audio device is active That is, the audio adapter that connects to the endpoint device is present and enabled.
212  AkDeviceState_Disabled = 1 << 1, ///< The audio device is disabled.
213  AkDeviceState_NotPresent = 1 << 2, ///< The audio device is not present because the audio adapter that connects to the endpoint device has been removed from the system.
214  AkDeviceState_Unplugged = 1 << 3, ///< The audio device is unplugged.
216 };
217 
219 {
220  AkUInt32 idDevice; ///< Device ID for Wwise. This is the same as what is returned from AK::GetDeviceID and AK::GetDeviceIDFromName. Use it to specify the main device in AkPlatformInitSettings.idAudioDevice or in AK::SoundEngine::AddSecondaryOutput.
221  AkOSChar deviceName[AK_MAX_PATH]; ///< The user-friendly name for the device.
222  AkAudioDeviceState deviceStateMask = AkDeviceState_Unknown; ///< Bitmask used to filter the device based on their state.
223  bool isDefaultDevice = false; ///< Identify default device. Always false when not supported.
224 };
225 
226 /// This structure allows the game to provide audio files to fill the external sources. See \ref AK::SoundEngine::PostEvent
227 /// You can specify a streaming file or a file in-memory, regardless of the "Stream" option in the Wwise project.
228 /// \akwarning
229 /// Make sure that only one of szFile, pInMemory or idFile is non-null. if both idFile and szFile are set, idFile is passed to low-level IO and szFile is used as stream name (for profiling purposes).
230 /// \endakwarning
232 {
233  AkUInt32 iExternalSrcCookie; ///< Cookie identifying the source, given by hashing the name of the source given in the project. See \ref AK::SoundEngine::GetIDFromString. \aknote If an event triggers the playback of more than one external source, they must be named uniquely in the project therefore have a unique cookie) in order to tell them apart when filling the AkExternalSourceInfo structures. \endaknote
234  AkCodecID idCodec; ///< Codec ID for the file. One of the audio formats defined in AkTypes.h (AKCODECID_XXX)
235  AkOSChar * szFile; ///< File path for the source. If not NULL, the source will be streaming from disk. Set pInMemory to NULL. If idFile is set, this field is used as stream name (for profiling purposes).
236  void* pInMemory; ///< Pointer to the in-memory file. If not NULL, the source will be read from memory. Set szFile and idFile to NULL.
237  AkUInt32 uiMemorySize; ///< Size of the data pointed by pInMemory
238  AkFileID idFile; ///< File ID. If not zero, the source will be streaming from disk. This ID can be anything. Note that you must override the low-level IO to resolve this ID to a real file. See \ref streamingmanager_lowlevel for more information on overriding the Low Level IO.
239 
240  /// Default constructor.
242  : iExternalSrcCookie( 0 )
243  , idCodec( 0 )
244  , szFile( 0 )
245  , pInMemory( 0 )
246  , uiMemorySize( 0 )
247  , idFile( 0 ) {}
248 
249  /// Constructor: specify source by memory.
251  void* in_pInMemory, ///< Pointer to the in-memory file.
252  AkUInt32 in_uiMemorySize, ///< Size of data.
253  AkUInt32 in_iExternalSrcCookie, ///< Cookie.
254  AkCodecID in_idCodec ///< Codec ID.
255  )
256  : iExternalSrcCookie( in_iExternalSrcCookie )
257  , idCodec( in_idCodec )
258  , szFile( 0 )
259  , pInMemory( in_pInMemory )
260  , uiMemorySize( in_uiMemorySize )
261  , idFile( 0 ) {}
262 
263  /// Constructor: specify source by streaming file name.
265  AkOSChar * in_pszFileName, ///< File name.
266  AkUInt32 in_iExternalSrcCookie, ///< Cookie.
267  AkCodecID in_idCodec ///< Codec ID.
268  )
269  : iExternalSrcCookie( in_iExternalSrcCookie )
270  , idCodec( in_idCodec )
271  , szFile( in_pszFileName )
272  , pInMemory( 0 )
273  , uiMemorySize( 0 )
274  , idFile( 0 ) {}
275 
276  /// Constructor: specify source by streaming file ID.
278  AkFileID in_idFile, ///< File ID.
279  AkUInt32 in_iExternalSrcCookie, ///< Cookie.
280  AkCodecID in_idCodec ///< Codec ID.
281  )
282  : iExternalSrcCookie( in_iExternalSrcCookie )
283  , idCodec( in_idCodec )
284  , szFile( 0 )
285  , pInMemory( 0 )
286  , uiMemorySize( 0 )
287  , idFile( in_idFile ) {}
288 };
289 
290 /// Nature of the connection binding an input to a bus.
292 {
293  ConnectionType_Direct = 0x0, ///< Direct (main, dry) connection.
294  ConnectionType_GameDefSend = 0x1, ///< Connection by a game-defined send.
295  ConnectionType_UserDefSend = 0x2, ///< Connection by a user-defined send.
296  ConnectionType_ReflectionsSend = 0x3, ///< Connection by a early reflections send.
297 };
298 
299 /// 3D vector.
300 struct AkVector
301 {
302  inline AkVector operator+(const AkVector& b) const
303  {
304  AkVector v;
305 
306  v.X = X + b.X;
307  v.Y = Y + b.Y;
308  v.Z = Z + b.Z;
309 
310  return v;
311  }
312 
313  inline void Zero()
314  {
315  X = 0; Y = 0; Z = 0;
316  }
317 
318  AkReal32 X; ///< X Position
319  AkReal32 Y; ///< Y Position
320  AkReal32 Z; ///< Z Position
321 };
322 
323 /// Position and orientation of game objects.
325 {
326 public:
327  //
328  // Getters.
329  //
330 
331  /// Get position vector.
332  inline const AkVector & Position() const
333  {
334  return position;
335  }
336 
337  /// Get orientation front vector.
338  inline const AkVector & OrientationFront() const
339  {
340  return orientationFront;
341  }
342 
343  /// Get orientation top vector.
344  inline const AkVector & OrientationTop() const
345  {
346  return orientationTop;
347  }
348 
349  //
350  // Setters.
351  //
352 
353  /// Set position and orientation. Orientation front and top should be orthogonal and normalized.
354  inline void Set(
355  const AkVector & in_position, ///< Position vector.
356  const AkVector & in_orientationFront, ///< Orientation front
357  const AkVector & in_orientationTop ///< Orientation top
358  )
359  {
360  position = in_position;
361  orientationFront = in_orientationFront;
362  orientationTop = in_orientationTop;
363  }
364 
365  /// Set position and orientation. Orientation front and top should be orthogonal and normalized.
366  inline void Set(
367  AkReal32 in_positionX, ///< Position x
368  AkReal32 in_positionY, ///< Position y
369  AkReal32 in_positionZ, ///< Position z
370  AkReal32 in_orientFrontX, ///< Orientation front x
371  AkReal32 in_orientFrontY, ///< Orientation front y
372  AkReal32 in_orientFrontZ, ///< Orientation front z
373  AkReal32 in_orientTopX, ///< Orientation top x
374  AkReal32 in_orientTopY, ///< Orientation top y
375  AkReal32 in_orientTopZ ///< Orientation top z
376  )
377  {
378  position.X = in_positionX;
379  position.Y = in_positionY;
380  position.Z = in_positionZ;
381  orientationFront.X = in_orientFrontX;
382  orientationFront.Y = in_orientFrontY;
383  orientationFront.Z = in_orientFrontZ;
384  orientationTop.X = in_orientTopX;
385  orientationTop.Y = in_orientTopY;
386  orientationTop.Z = in_orientTopZ;
387  }
388 
389  /// Set position.
390  inline void SetPosition(
391  const AkVector & in_position ///< Position vector.
392  )
393  {
394  position = in_position;
395  }
396 
397  /// Set position.
398  inline void SetPosition(
399  AkReal32 in_x, ///< x
400  AkReal32 in_y, ///< y
401  AkReal32 in_z ///< z
402  )
403  {
404  position.X = in_x;
405  position.Y = in_y;
406  position.Z = in_z;
407  }
408 
409  /// Set orientation. Orientation front and top should be orthogonal and normalized.
410  inline void SetOrientation(
411  const AkVector & in_orientationFront, ///< Orientation front
412  const AkVector & in_orientationTop ///< Orientation top
413  )
414  {
415  orientationFront = in_orientationFront;
416  orientationTop = in_orientationTop;
417  }
418 
419  /// Set orientation. Orientation front and top should be orthogonal and normalized.
420  inline void SetOrientation(
421  AkReal32 in_orientFrontX, ///< Orientation front x
422  AkReal32 in_orientFrontY, ///< Orientation front y
423  AkReal32 in_orientFrontZ, ///< Orientation front z
424  AkReal32 in_orientTopX, ///< Orientation top x
425  AkReal32 in_orientTopY, ///< Orientation top y
426  AkReal32 in_orientTopZ ///< Orientation top z
427  )
428  {
429  orientationFront.X = in_orientFrontX;
430  orientationFront.Y = in_orientFrontY;
431  orientationFront.Z = in_orientFrontZ;
432  orientationTop.X = in_orientTopX;
433  orientationTop.Y = in_orientTopY;
434  orientationTop.Z = in_orientTopZ;
435  }
436 
437 private:
438  AkVector orientationFront; ///< Orientation of the listener
439  AkVector orientationTop; ///< Top orientation of the listener
440  AkVector position; ///< Position of the listener
441 };
442 
443 /// Positioning information for a sound.
445 
446 /// Positioning information for a listener.
448 
449 /// Obstruction/occlusion pair for a position
451 {
452  AkReal32 occlusion; ///< OcclusionLevel: [0.0f..1.0f]
453  AkReal32 obstruction; ///< ObstructionLevel: [0.0f..1.0f]
454 };
455 
456 /// Positioning information for a sound, with specified subset of its channels.
458 {
459  AkTransform position; ///< Emitter position.
460  AkChannelMask uInputChannels; ///< Channels to which the above position applies.
461 };
462 
463 /// Polar coordinates.
465 {
466  AkReal32 r; ///< Norm/distance
467  AkReal32 theta; ///< Azimuth
468 };
469 
470 /// Spherical coordinates.
472 {
473  AkReal32 phi; ///< Elevation
474 };
475 
476 /// Emitter-listener pair: Positioning data pertaining to a single pair of emitter and listener.
478 {
479 public:
480  /// Constructor.
482  : fDistance(0.f)
483  , fEmitterAngle(0.f)
484  , fListenerAngle(0.f)
485  , fDryMixGain(1.f)
486  , fGameDefAuxMixGain(1.f)
487  , fUserDefAuxMixGain(1.f)
488  , fOcclusion(0.f)
489  , fObstruction(0.f)
490  , fSpread(0.f)
491  , fFocus(0.f)
492  , uEmitterChannelMask(0xFFFFFFFF)
493  , m_uListenerID(0)
494  {
495  }
496  /// Destructor.
498 
499  /// Get distance.
500  inline AkReal32 Distance() const { return fDistance; }
501 
502  /// Get the absolute angle, in radians between 0 and pi, of the emitter's orientation relative to
503  /// the line that joins the emitter and the listener.
504  inline AkReal32 EmitterAngle() const { return fEmitterAngle; }
505 
506  /// Get the absolute angle, in radians between 0 and pi, of the listener's orientation relative to
507  /// the line that joins the emitter and the listener
508  inline AkReal32 ListenerAngle() const { return fListenerAngle; }
509 
510  /// Get the occlusion factor for this emitter-listener pair
511  inline AkReal32 Occlusion() const { return fOcclusion; }
512 
513  /// Get the obstruction factor for this emitter-listener pair
514  inline AkReal32 Obstruction() const { return fObstruction; }
515 
516  /// Get the emitter-listener-pair-specific gain (due to distance and cone attenuation), linear [0,1], for a given connection type.
518  {
519  if (in_eType == ConnectionType_Direct)
520  return fDryMixGain;
521  else if (in_eType == ConnectionType_GameDefSend)
522  return fGameDefAuxMixGain;
523  else if (in_eType == ConnectionType_UserDefSend)
524  return fUserDefAuxMixGain;
525  else
526  return 1.0f;
527  }
528 
529  /// Get listener ID associated with the emitter-listener pair.
530  inline AkGameObjectID ListenerID() const { return m_uListenerID; }
531 
532  AkTransform emitter; /// Emitter position.
533  AkReal32 fDistance; /// Distance between emitter and listener.
534  AkReal32 fEmitterAngle; /// Angle between position vector and emitter orientation.
535  AkReal32 fListenerAngle; /// Angle between position vector and listener orientation.
536  AkReal32 fDryMixGain; /// Emitter-listener-pair-specific gain (due to distance and cone attenuation) for direct connections.
537  AkReal32 fGameDefAuxMixGain; /// Emitter-listener-pair-specific gain (due to distance and cone attenuation) for game-defined send connections.
538  AkReal32 fUserDefAuxMixGain; /// Emitter-listener-pair-specific gain (due to distance and cone attenuation) for user-defined send connections.
539  AkReal32 fOcclusion; /// Emitter-listener-pair-specific occlusion factor
540  AkReal32 fObstruction; /// Emitter-listener-pair-specific obstruction factor
541  AkReal32 fSpread; /// Emitter-listener-pair-specific spread
542  AkReal32 fFocus; /// Emitter-listener-pair-specific focus
543  AkChannelMask uEmitterChannelMask; /// Channels of the emitter that apply to this ray.
544 protected:
545  AkGameObjectID m_uListenerID; /// Listener game object ID.
546 };
547 
548 /// Listener information.
549 struct AkListener
550 {
552  : fScalingFactor( 1.0f )
553  , bSpatialized( true )
554  {}
555  AkListenerPosition position; /// Listener position (see AK::SoundEngine::SetPosition()).
556  AkReal32 fScalingFactor; /// Listener scaling factor (see AK::SoundEngine::SetListenerScalingFactor()).
557  bool bSpatialized; /// Whether listener is spatialized or not (see AK::SoundEngine::SetListenerSpatialization()).
558 };
559 
560 // If you modify AkCurveInterpolation, don't forget to modify WAAPI validation schema accordingly.
561 
562 /// Curve interpolation types
564 {
565 //DONT GO BEYOND 15! (see below for details)
566 //Curves from 0 to LastFadeCurve NEED TO BE A MIRROR IMAGE AROUND LINEAR (eg. Log3 is the inverse of Exp3)
570  AkCurveInterpolation_InvSCurve = 3, ///< Inversed S Curve
571  AkCurveInterpolation_Linear = 4, ///< Linear (Default)
572  AkCurveInterpolation_SCurve = 5, ///< S Curve
574  AkCurveInterpolation_SineRecip = 7, ///< Reciprocal of sine curve
576  AkCurveInterpolation_LastFadeCurve = 8, ///< Update this value to reflect last curve available for fades
577  AkCurveInterpolation_Constant = 9 ///< Constant ( not valid for fading values )
578 //DONT GO BEYOND 15! The value is stored on 5 bits,
579 //but we can use only 4 bits for the actual values, keeping
580 //the 5th bit at 0 to void problems when the value is
581 //expanded to 32 bits.
582 };
583 #define AKCURVEINTERPOLATION_NUM_STORAGE_BIT 5 ///< Internal storage restriction, for internal use only.
584 
585 /// Auxiliary bus sends information per game object per given auxiliary bus.
587 {
588  AkGameObjectID listenerID; ///< Game object ID of the listener associated with this send. Use AK_INVALID_GAME_OBJECT as a wildcard to set the auxiliary send to all connected listeners (see AK::SoundEngine::SetListeners).
589  AkAuxBusID auxBusID; ///< Auxiliary bus ID.
590  AkReal32 fControlValue; ///< A value in the range [0.0f:16.0f[ (-96.3dB to +24dB).
591  ///< Represents the attenuation or amplification factor applied to the volume of the sound going through the auxiliary bus.
592  ///< A value greater than 1.0f will amplify the sound.
593 };
594 
595 /// Volume ramp specified by end points "previous" and "next".
596 struct AkRamp
597 {
598  AkRamp() : fPrev( 1.f ), fNext( 1.f ) {}
599  AkRamp( AkReal32 in_fPrev, AkReal32 in_fNext ) : fPrev( in_fPrev ), fNext( in_fNext ) {}
600  AkRamp & operator*=(const AkRamp& in_rRhs) { fPrev *= in_rRhs.fPrev; fNext *= in_rRhs.fNext; return *this; }
601 
604 };
605 inline AkRamp operator*(const AkRamp& in_rLhs, const AkRamp& in_rRhs)
606 {
607  AkRamp result(in_rLhs);
608  result *= in_rRhs;
609  return result;
610 }
611 
612 // ---------------------------------------------------------------
613 // Languages
614 // ---------------------------------------------------------------
615 #define AK_MAX_LANGUAGE_NAME_SIZE (32)
616 
617 // ---------------------------------------------------------------
618 // File Type ID Definitions
619 // ---------------------------------------------------------------
620 
621 // These correspond to IDs specified in the conversion plug-ins' XML
622 // files. Audio sources persist them to "remember" their format.
623 // DO NOT CHANGE THEM without talking to someone in charge of persistence!
624 
625 // Company ID for plugin development.
626 #define AKCOMPANYID_PLUGINDEV_MIN (64)
627 #define AKCOMPANYID_PLUGINDEV_MAX (255)
628 
629 // Vendor ID.
630 #define AKCOMPANYID_AUDIOKINETIC (0) ///< Audiokinetic inc.
631 #define AKCOMPANYID_AUDIOKINETIC_EXTERNAL (1) ///< Audiokinetic inc.
632 #define AKCOMPANYID_MCDSP (256) ///< McDSP
633 #define AKCOMPANYID_WAVEARTS (257) ///< WaveArts
634 #define AKCOMPANYID_PHONETICARTS (258) ///< Phonetic Arts
635 #define AKCOMPANYID_IZOTOPE (259) ///< iZotope
636 #define AKCOMPANYID_CRANKCASEAUDIO (261) ///< Crankcase Audio
637 #define AKCOMPANYID_IOSONO (262) ///< IOSONO
638 #define AKCOMPANYID_AUROTECHNOLOGIES (263) ///< Auro Technologies
639 #define AKCOMPANYID_DOLBY (264) ///< Dolby
640 #define AKCOMPANYID_TWOBIGEARS (265) ///< Two Big Ears
641 #define AKCOMPANYID_OCULUS (266) ///< Oculus
642 #define AKCOMPANYID_BLUERIPPLESOUND (267) ///< Blue Ripple Sound
643 #define AKCOMPANYID_ENZIEN (268) ///< Enzien Audio
644 #define AKCOMPANYID_KROTOS (269) ///< Krotos (Dehumanizer)
645 #define AKCOMPANYID_NURULIZE (270) ///< Nurulize
646 #define AKCOMPANYID_SUPERPOWERED (271) ///< Super Powered
647 #define AKCOMPANYID_GOOGLE (272) ///< Google
648 //#define AKCOMPANYID_NVIDIA (273) ///< NVIDIA // Commented out to avoid redefinition, provider is already defining it.
649 //#define AKCOMPANYID_RESERVED (274) ///< Reserved // Commented out to avoid redefinition, provider is already defining it.
650 //#define AKCOMPANYID_MICROSOFT (275) ///< Microsoft // Commented out to avoid redefinition, provider is already defining it.
651 //#define AKCOMPANYID_YAMAHA (276) ///< YAMAHA // Commented out to avoid redefinition, provider is already defining it.
652 #define AKCOMPANYID_VISISONICS (277) ///< Visisonics
653 
654 // File/encoding types of Audiokinetic.
655 #define AKCODECID_BANK (0) ///< Bank encoding
656 #define AKCODECID_PCM (1) ///< PCM encoding
657 #define AKCODECID_ADPCM (2) ///< ADPCM encoding
658 #define AKCODECID_XMA (3) ///< XMA encoding
659 #define AKCODECID_VORBIS (4) ///< Vorbis encoding
660 #define AKCODECID_WIIADPCM (5) ///< ADPCM encoding on the Wii
661 #define AKCODECID_PCMEX (7) ///< Standard PCM WAV file parser for Wwise Authoring
662 #define AKCODECID_EXTERNAL_SOURCE (8) ///< External Source (unknown encoding)
663 #define AKCODECID_XWMA (9) ///< xWMA encoding
664 #define AKCODECID_AAC (10) ///< AAC encoding (only available on Apple devices) -- see AkAACFactory.h
665 #define AKCODECID_FILE_PACKAGE (11) ///< File package files generated by the File Packager utility.
666 #define AKCODECID_ATRAC9 (12) ///< ATRAC-9 encoding
667 #define AKCODECID_VAG (13) ///< VAG/HE-VAG encoding
668 #define AKCODECID_PROFILERCAPTURE (14) ///< Profiler capture file (.prof) as written through AK::SoundEngine::StartProfilerCapture
669 #define AKCODECID_ANALYSISFILE (15) ///< Analysis file
670 #define AKCODECID_MIDI (16) ///< MIDI file
671 #define AKCODECID_OPUSNX (17) ///< OpusNX encoding
672 #define AKCODECID_CAF (18) ///< CAF file
673 #define AKCODECID_AKOPUS (19) ///< Opus encoding, 2018.1 to 2019.2
674 #define AKCODECID_AKOPUS_WEM (20) ///< Opus encoding, wrapped in WEM
675 
676 #define AKPLUGINID_METER (129) ///< Meter Plugin
677 #define AKPLUGINID_RECORDER (132) ///< Recorder Plugin
678 
679 #define AKEXTENSIONID_SPATIALAUDIO (800) ///< Spatial Audio
680 #define AKEXTENSIONID_INTERACTIVEMUSIC (801) ///< Interactive Music
681 #define AKEXTENSIONID_EVENTMGRTHREAD (900) ///< Profiling: Event Manager
682 
683 //The following are internally defined
684 #define AK_WAVE_FORMAT_VAG 0xFFFB
685 #define AK_WAVE_FORMAT_AT9 0xFFFC
686 #define AK_WAVE_FORMAT_VORBIS 0xFFFF
687 #define AK_WAVE_FORMAT_AAC 0xAAC0
688 #define AK_WAVE_FORMAT_OPUSNX 0x3039
689 #define AK_WAVE_FORMAT_OPUS 0x3040
690 #define AK_WAVE_FORMAT_OPUS_WEM 0x3041
691 #define WAVE_FORMAT_XMA2 0x166
692 
693 //-----------------------------------------------------------------------------
694 // Codecs
695 //-----------------------------------------------------------------------------
696 
697 class IAkSoftwareCodec;
698 class IAkFileCodec;
699 class IAkGrainCodec;
700 /// Registered file source creation function prototype.
701 AK_CALLBACK( IAkSoftwareCodec*, AkCreateFileSourceCallback )( void* in_pCtx );
702 /// Registered bank source node creation function prototype.
703 AK_CALLBACK( IAkSoftwareCodec*, AkCreateBankSourceCallback )( void* in_pCtx );
704 /// Registered FileCodec creation function prototype.
706 /// Registered IAkGrainCodec creation function prototype.
708 
710 {
715 };
716 
717 
718 //-----------------------------------------------------------------------------
719 // Positioning
720 //-----------------------------------------------------------------------------
721 
722 namespace AK
723 {
724  namespace SoundEngine
725  {
726  // If you modify MultiPositionType, don't forget to modify WAAPI validation schema accordingly.
727 
728  /// MultiPositionType.
729  /// \sa
730  /// - AK::SoundEngine::SetMultiplePosition()
731  /// - \ref soundengine_3dpositions_multiplepos
733  {
734  MultiPositionType_SingleSource, ///< Used for normal sounds, not expected to pass to AK::SoundEngine::SetMultiplePosition() (if done, only the first position will be used).
735  MultiPositionType_MultiSources, ///< Simulate multiple sources in one sound playing, adding volumes. For instance, all the torches on your level emitting using only one sound.
736  MultiPositionType_MultiDirections ///< Simulate one sound coming from multiple directions. Useful for repositionning sounds based on wall openings or to simulate areas like forest or rivers ( in combination with spreading in the attenuation of the sounds ).
737  };
738  }
739 }
740 
741 #define AK_PANNER_NUM_STORAGE_BITS 3
742 /// Speaker panning type: type of panning logic when object is not 3D spatialized (i.e. when Ak3DSpatializationMode is AK_SpatializationMode_None).
744 {
745  AK_DirectSpeakerAssignment = 0, ///< No panning: route to matching channels between input and output.
746  AK_BalanceFadeHeight = 1 ///< Balance-Fade-Height: Traditional "box" or "car"-like panner.
747 };
748 
749 #define AK_POSSOURCE_NUM_STORAGE_BITS 3
750 /// 3D position type: defines what acts as the emitter position for computing spatialization against the listener. Used when Ak3DSpatializationMode is AK_SpatializationMode_PositionOnly or AK_SpatializationMode_PositionAndOrientation.
752 {
753  AK_3DPositionType_Emitter = 0, ///< 3D spatialization is computed directly from the emitter game object position.
754  AK_3DPositionType_EmitterWithAutomation = 1, ///< 3D spatialization is computed from the emitter game object position, translated by user-defined automation.
755  AK_3DPositionType_ListenerWithAutomation = 2 ///< 3D spatialization is computed from the listener game object position, translated by user-defined automation.
756 };
757 
758 /// Headphone / speakers panning rules
760 {
761  AkPanningRule_Speakers = 0, ///< Left and right positioned 60 degrees apart (by default - see AK::SoundEngine::GetSpeakerAngles()).
762  AkPanningRule_Headphones = 1 ///< Left and right positioned 180 degrees apart.
763 };
764 
765 #define AK_SPAT_NUM_STORAGE_BITS 3
766 /// 3D spatialization mode.
768 {
769  AK_SpatializationMode_None = 0, ///< No spatialization
770  AK_SpatializationMode_PositionOnly = 1, ///< Spatialization based on emitter position only.
771  AK_SpatializationMode_PositionAndOrientation = 2 ///< Spatialization based on both emitter position and emitter orientation.
772 };
773 
774 /// Bus type bit field.
776 {
777  AkBusHierarchy_Primary = 1 << 0, ///< Flag is set to indicate the primary bus hierarchy.
778  AkBusHierarchy_Secondary = 1 << 1, ///< Flag is set to indicate the secondary bus hierarchy.
779  AkBusHierarchy_IsMaster = 1 << 7 ///< Flag is set to indicate a master bus (may be used in combination with other flags).
780 };
781 
782 #define AK_MAX_BITS_METERING_FLAGS (5) // Keep in sync with AkMeteringFlags.
783 
784 /// Metering flags. Used for specifying bus metering, through AK::SoundEngine::RegisterBusVolumeCallback() or AK::IAkMixerPluginContext::SetMeteringFlags().
786 {
787  AK_NoMetering = 0, ///< No metering.
788  AK_EnableBusMeter_Peak = 1 << 0, ///< Enable computation of peak metering.
789  AK_EnableBusMeter_TruePeak = 1 << 1, ///< Enable computation of true peak metering (most CPU and memory intensive).
790  AK_EnableBusMeter_RMS = 1 << 2, ///< Enable computation of RMS metering.
791  // 1 << 3 is reserved.
792  AK_EnableBusMeter_KPower = 1 << 4, ///< Enable computation of K-weighted power metering (used as a basis for computing loudness, as defined by ITU-R BS.1770).
794 };
795 
796 /// Plug-in type.
797 /// \sa
798 /// - AkPluginInfo
800 {
801  AkPluginTypeNone = 0, ///< Unknown/invalid plug-in type.
802  AkPluginTypeCodec = 1, ///< Compressor/decompressor plug-in (allows support for custom audio file types).
803  AkPluginTypeSource = 2, ///< Source plug-in: creates sound by synthesis method (no input, just output).
804  AkPluginTypeEffect = 3, ///< Effect plug-in: applies processing to audio data.
805  //AkPluginTypeMotionDevice = 4, ///< Motion Device plug-in: feeds movement data to devices. Deprecated by Motion refactor.
806  //AkPluginTypeMotionSource = 5, ///< Motion Device source plug-in: feeds movement data to device busses. Deprecated by Motion refactor.
807  AkPluginTypeMixer = 6, ///< Mixer plug-in: mix voices at the bus level.
808  AkPluginTypeSink = 7, ///< Sink plug-in: implement custom sound engine end point.
809  AkPluginTypeGlobalExtension = 8, ///< Global Extension plug-in: (e.g. Spatial Audio, Interactive Music)
810  AkPluginTypeMask = 0xf ///< Plug-in type mask is 4 bits.
811 };
812 
813 ////////////////////////////////////////////////////////////////////////////////
814 // Wwise ID system
815 ////////////////////////////////////////////////////////////////////////////////
817 {
820 };
821 
823 {
824 public:
825 
826  bool operator == ( const WwiseObjectIDext& in_rOther ) const
827  {
828  return in_rOther.id == id && in_rOther.bIsBus == bIsBus;
829  }
830 
832  {
834  }
835 
837  bool bIsBus;
838 };
839 
841 {
843  {
845  bIsBus = false;
846  }
847 
849  {
850  id = in_ID;
851  bIsBus = false;
852  }
853 
854  WwiseObjectID( AkUniqueID in_ID, bool in_bIsBus )
855  {
856  id = in_ID;
857  bIsBus = in_bIsBus;
858  }
859 
860  WwiseObjectID( AkUniqueID in_ID, AkNodeType in_eNodeType )
861  {
862  id = in_ID;
863  bIsBus = in_eNodeType == AkNodeType_Bus;
864  }
865 };
866 
867 /// Public data structures for converted file format.
868 namespace AkFileParser
869 {
870 #pragma pack(push, 1)
871  /// Analyzed envelope point.
873  {
874  AkUInt32 uPosition; /// Position of this point in samples at the source rate.
875  AkUInt16 uAttenuation; /// Approximate _attenuation_ at this location relative to this source's maximum, in dB (absolute value).
876  };
877 #pragma pack(pop)
878 }
879 
880 #ifndef AK_OS_STRUCT_ALIGN
881 #define AK_OS_STRUCT_ALIGN 4 ///< OS Structures need to be aligned at 4 bytes.
882 #endif
883 
884 #ifndef AK_64B_OS_STRUCT_ALIGN
885 #define AK_64B_OS_STRUCT_ALIGN 8 ///< OS Structures need to be aligned at 8 bytes.
886 #endif
887 
888 #ifndef AK_ALIGN
889 #if defined(SWIG)
890 #define AK_ALIGN( _declaration_, _alignment_ ) _declaration_
891 #else
892 #if defined(_MSC_VER)
893 #define AK_ALIGN( _declaration_, _alignment_ ) __declspec( align( _alignment_ ) ) _declaration_
894 #else
895 #define AK_ALIGN( _declaration_, _alignment_ ) _declaration_ __attribute__( ( aligned( _alignment_ ) ) )
896 #endif // _MSC_VER
897 #endif // SWIG
898 #endif // AK_ALIGN
899 
900 #if !defined(AK_ENDIANNESS_LITTLE) && !defined(AK_ENDIANNESS_BIG)
901 #define AK_ENDIANNESS_LITTLE
902 #endif
903 
904 #ifndef AK_UNALIGNED
905 #define AK_UNALIGNED ///< Refers to the __unaligned compilation flag available on some platforms. Note that so far, on the tested platform this should always be placed before the pointer symbol *.
906 #endif
907 
908 #if __cplusplus <= 199711L
909 #define AK_FINAL
910 #else
911 #define AK_FINAL final ///< Refers to the C++11 final keyword
912 #endif
913 
914 #ifndef AK_ASYNC_OPEN_DEFAULT
915 #define AK_ASYNC_OPEN_DEFAULT (false) ///< Refers to asynchronous file opening in default low-level IO.
916 #endif
917 
918 #ifndef AK_COMM_DEFAULT_DISCOVERY_PORT
919 #define AK_COMM_DEFAULT_DISCOVERY_PORT 24024 ///< Default discovery port for most platforms using IP sockets for communication.
920 #endif
921 
922 #ifndef AK_CAPTURE_TYPE_FLOAT
923 typedef AkInt16 AkCaptureType; ///< Default value: capture type is short.
924 #endif
925 
926 #define AkRegister
927 
928 #endif //_AK_DATA_TYPES_H_
@ AkNodeType_Bus
Definition: AkTypes.h:819
@ AK_PathNodeNotInList
This path is not there.
Definition: AkTypes.h:147
AkEmitterListenerPair()
Constructor.
Definition: AkTypes.h:481
AkAudioDeviceState deviceStateMask
Bitmask used to filter the device based on their state.
Definition: AkTypes.h:222
AkGameObjectID m_uListenerID
Channels of the emitter that apply to this ray.
Definition: AkTypes.h:545
AkUInt32 AkStateGroupID
State group ID.
Definition: AkTypes.h:59
MultiPositionType
Definition: AkTypes.h:733
AkUniqueID id
Definition: AkTypes.h:836
AkNodeType GetType()
Definition: AkTypes.h:831
AkReal32 fControlValue
Definition: AkTypes.h:590
void SetPosition(AkReal32 in_x, AkReal32 in_y, AkReal32 in_z)
Set position.
Definition: AkTypes.h:398
static const AkPriority AK_DEFAULT_BANK_IO_PRIORITY
Default bank load I/O priority.
Definition: AkTypes.h:114
AkUInt8 AkDataInterleaveID
Data interleaved state ID.
Definition: AkTypes.h:75
@ AK_UnsupportedChannelConfig
Channel configuration is not supported in the current execution context.
Definition: AkTypes.h:169
@ AK_NoMetering
No metering.
Definition: AkTypes.h:787
@ AK_InvalidCustomPlatformName
Detecting incompatibility between Custom platform of banks and custom platform of connected applicati...
Definition: AkTypes.h:174
AkSpeakerPanningType
Speaker panning type: type of panning logic when object is not 3D spatialized (i.e....
Definition: AkTypes.h:744
AkExternalSourceInfo(AkFileID in_idFile, AkUInt32 in_iExternalSrcCookie, AkCodecID in_idCodec)
Constructor: specify source by streaming file ID.
Definition: AkTypes.h:277
uint64_t AkUInt64
Unsigned 64-bit integer.
Definition: AkTypes.h:86
@ AK_InvalidSwitchType
Invalid switch type (used with the switch container)
Definition: AkTypes.h:156
AkRamp & operator*=(const AkRamp &in_rRhs)
Definition: AkTypes.h:600
AkReal32 Occlusion() const
Get the occlusion factor for this emitter-listener pair.
Definition: AkTypes.h:511
@ AK_FileNotFound
File not found.
Definition: AkTypes.h:159
void Zero()
Definition: AkTypes.h:313
Audiokinetic namespace.
AkInt32 AkTimeMs
Time in ms.
Definition: AkTypes.h:61
Auxiliary bus sends information per game object per given auxiliary bus.
Definition: AkTypes.h:587
@ AK_Fail
The operation failed.
Definition: AkTypes.h:125
AkReal32 fEmitterAngle
Distance between emitter and listener.
Definition: AkTypes.h:534
Obstruction/occlusion pair for a position.
Definition: AkTypes.h:451
void * pInMemory
Pointer to the in-memory file. If not NULL, the source will be read from memory. Set szFile and idFil...
Definition: AkTypes.h:236
@ AK_DataAlignmentError
A pointer to audio data was not aligned to the platform's required alignment (check AkTypes....
Definition: AkTypes.h:180
AkCodecID idCodec
Codec ID for the file. One of the audio formats defined in AkTypes.h (AKCODECID_XXX)
Definition: AkTypes.h:234
AkTransform AkListenerPosition
Positioning information for a listener.
Definition: AkTypes.h:447
@ AkPluginTypeGlobalExtension
Global Extension plug-in: (e.g. Spatial Audio, Interactive Music)
Definition: AkTypes.h:809
AkUInt32 AkModulatorID
Modulator ID.
Definition: AkTypes.h:86
AkReal32 fPrev
Definition: AkTypes.h:602
@ AK_DataReady
The provider has available data.
Definition: AkTypes.h:150
@ AkPluginTypeMask
Plug-in type mask is 4 bits.
Definition: AkTypes.h:810
@ AK_NotCompatible
Incompatible formats.
Definition: AkTypes.h:127
AkReal32 phi
Elevation.
Definition: AkTypes.h:473
@ AkGroupType_Switch
Type switch.
Definition: AkTypes.h:197
IAkSoftwareCodec *(* AkCreateFileSourceCallback)(void *in_pCtx)
Registered file source creation function prototype.
Definition: AkTypes.h:701
AkUInt32 AkRtpcID
Real time parameter control ID.
Definition: AkTypes.h:78
@ AkPanningRule_Headphones
Left and right positioned 180 degrees apart.
Definition: AkTypes.h:762
@ AK_InvalidID
The ID is invalid.
Definition: AkTypes.h:132
@ AkCurveInterpolation_SCurve
S Curve.
Definition: AkTypes.h:572
@ AkCurveInterpolation_SineRecip
Reciprocal of sine curve.
Definition: AkTypes.h:574
@ ConnectionType_Direct
Direct (main, dry) connection.
Definition: AkTypes.h:293
@ AK_InvalidFile
An unexpected value causes the file to be invalid.
Definition: AkTypes.h:129
@ AK_SSEInstructionsNotSupported
The machine does not support SSE instructions (required on PC).
Definition: AkTypes.h:167
AkReal32 Distance() const
Get distance.
Definition: AkTypes.h:500
@ AK_NoDistinctListener
No distinct listener provided for AddOutput.
Definition: AkTypes.h:188
@ AK_SpatializationMode_None
No spatialization.
Definition: AkTypes.h:769
bool operator==(const WwiseObjectIDext &in_rOther) const
Definition: AkTypes.h:826
bool isDefaultDevice
Identify default device. Always false when not supported.
Definition: AkTypes.h:223
@ AK_DLLPathNotFound
Plugin DLL search path could not be found.
Definition: AkTypes.h:176
@ AK_CommandTooLarge
SDK command is too large to fit in the command queue.
Definition: AkTypes.h:172
@ AK_MaxReached
The maximum was reached.
Definition: AkTypes.h:131
AkUInt64 AkGameObjectID
Game object ID.
Definition: AkTypes.h:65
AkNodeType
Definition: AkTypes.h:817
const AkVector & Position() const
Get position vector.
Definition: AkTypes.h:332
AkUInt32 AkBankID
Run time bank ID.
Definition: AkTypes.h:80
AkOSChar * szFile
File path for the source. If not NULL, the source will be streaming from disk. Set pInMemory to NULL....
Definition: AkTypes.h:235
const AkVector & OrientationFront() const
Get orientation front vector.
Definition: AkTypes.h:338
AkReal32 fSpread
Emitter-listener-pair-specific obstruction factor.
Definition: AkTypes.h:541
void Set(AkReal32 in_positionX, AkReal32 in_positionY, AkReal32 in_positionZ, AkReal32 in_orientFrontX, AkReal32 in_orientFrontY, AkReal32 in_orientFrontZ, AkReal32 in_orientTopX, AkReal32 in_orientTopY, AkReal32 in_orientTopZ)
Set position and orientation. Orientation front and top should be orthogonal and normalized.
Definition: AkTypes.h:366
@ MultiPositionType_MultiDirections
Simulate one sound coming from multiple directions. Useful for repositionning sounds based on wall op...
Definition: AkTypes.h:736
@ AkNodeType_Default
Definition: AkTypes.h:818
const AkVector & OrientationTop() const
Get orientation top vector.
Definition: AkTypes.h:344
AKRESULT
Standard function call result.
Definition: AkTypes.h:122
static const AkDeviceID AK_INVALID_DEVICE_ID
Invalid streaming device ID.
Definition: AkTypes.h:102
AkRamp()
Definition: AkTypes.h:598
@ AK_NoDataReady
The provider does not have available data.
Definition: AkTypes.h:151
@ AkGroupType_State
Type state.
Definition: AkTypes.h:198
@ AkPanningRule_Speakers
Left and right positioned 60 degrees apart (by default - see AK::SoundEngine::GetSpeakerAngles()).
Definition: AkTypes.h:761
static const AkPriority AK_MIN_PRIORITY
Minimal priority value [0,100].
Definition: AkTypes.h:110
@ AK_ResourceInUse
Resource is in use and cannot be released.
Definition: AkTypes.h:190
@ AK_DeviceNotFound
The specified device ID does not match with any of the output devices that the sound engine is curren...
Definition: AkTypes.h:184
AkUInt32 AkDeviceID
I/O device ID.
Definition: AkTypes.h:82
AkReal32 r
Norm/distance.
Definition: AkTypes.h:466
static const AkPluginID AK_INVALID_PLUGINID
Invalid FX ID.
Definition: AkTypes.h:92
AkTransform AkSoundPosition
Positioning information for a sound.
Definition: AkTypes.h:444
@ AK_NoMoreData
No more data is available from the source.
Definition: AkTypes.h:135
WwiseObjectID(AkUniqueID in_ID, bool in_bIsBus)
Definition: AkTypes.h:854
@ AkCurveInterpolation_Sine
Sine.
Definition: AkTypes.h:568
AkUInt32 AkImageSourceID
Image Source ID.
Definition: AkTypes.h:88
AkInt32 AkMemPoolId
Memory pool ID.
Definition: AkTypes.h:67
AkUInt32 AkArgumentValueID
Argument value ID.
Definition: AkTypes.h:84
@ AK_SpatializationMode_PositionOnly
Spatialization based on emitter position only.
Definition: AkTypes.h:770
@ AK_NoJavaVM
No Java VM provided in AkInitSettings.
Definition: AkTypes.h:177
static const AkUInt32 AK_SOUNDBANK_VERSION
Version of the soundbank reader.
Definition: AkTypes.h:118
AkReal32 fDistance
Emitter position.
Definition: AkTypes.h:533
@ AK_FileFormatMismatch
Media file format unexpected.
Definition: AkTypes.h:187
@ AK_EnableBusMeter_Peak
Enable computation of peak metering.
Definition: AkTypes.h:788
static const AkBankID AK_INVALID_BANK_ID
Invalid bank ID.
Definition: AkTypes.h:103
void Set(const AkVector &in_position, const AkVector &in_orientationFront, const AkVector &in_orientationTop)
Set position and orientation. Orientation front and top should be orthogonal and normalized.
Definition: AkTypes.h:354
@ AK_RenderedFX
The effect on the node is rendered.
Definition: AkTypes.h:162
@ AkDeviceState_All
Includes audio devices in all states.
Definition: AkTypes.h:215
AkUInt32 AkChannelMask
Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig....
Definition: AkTypes.h:85
AkReal32 AkLPFType
Low-pass filter type.
Definition: AkTypes.h:66
@ AK_BankReadError
Error while reading a bank.
Definition: AkTypes.h:155
@ AK_InvalidStateGroup
The StateGroup is not a valid channel.
Definition: AkTypes.h:136
static const AkUInt32 AK_DEFAULT_SWITCH_STATE
Switch selected if no switch has been set yet.
Definition: AkTypes.h:97
AkExternalSourceInfo(AkOSChar *in_pszFileName, AkUInt32 in_iExternalSrcCookie, AkCodecID in_idCodec)
Constructor: specify source by streaming file name.
Definition: AkTypes.h:264
char AkOSChar
Generic character string.
Definition: AkTypes.h:101
@ AK_IDNotFound
The ID was not found.
Definition: AkTypes.h:133
@ AK_3DPositionType_EmitterWithAutomation
3D spatialization is computed from the emitter game object position, translated by user-defined autom...
Definition: AkTypes.h:754
@ AK_BankAlreadyLoaded
The bank load failed because the bank is already loaded.
Definition: AkTypes.h:161
AkReal32 AkVolumeValue
Volume value( also apply to LFE )
Definition: AkTypes.h:64
@ AkCurveInterpolation_Exp1
Exp1.
Definition: AkTypes.h:573
@ AK_DLLCannotLoad
Plugin DLL could not be loaded, either because it is not found or one dependency is missing.
Definition: AkTypes.h:175
@ AK_ProcessDone
The executed routine has finished its execution.
Definition: AkTypes.h:164
@ AK_Success
The operation was successful.
Definition: AkTypes.h:124
AkReal32 fObstruction
Emitter-listener-pair-specific occlusion factor.
Definition: AkTypes.h:540
@ AkDeviceState_Active
The audio device is active That is, the audio adapter that connects to the endpoint device is present...
Definition: AkTypes.h:211
Emitter-listener pair: Positioning data pertaining to a single pair of emitter and listener.
Definition: AkTypes.h:478
@ AK_PathNodeAlreadyInList
This path is already there.
Definition: AkTypes.h:146
@ MultiPositionType_SingleSource
Used for normal sounds, not expected to pass to AK::SoundEngine::SetMultiplePosition() (if done,...
Definition: AkTypes.h:734
AkReal32 fGameDefAuxMixGain
Emitter-listener-pair-specific gain (due to distance and cone attenuation) for direct connections.
Definition: AkTypes.h:537
@ AkCurveInterpolation_Exp3
Exp3.
Definition: AkTypes.h:575
AkUInt32 AkFileID
Integer-type file identifier.
Definition: AkTypes.h:81
static const AkPriority AK_DEFAULT_PRIORITY
Default sound / I/O priority.
Definition: AkTypes.h:109
@ AK_MemManagerNotInitialized
The memory manager should have been initialized at this point.
Definition: AkTypes.h:165
IAkFileCodec *(* AkCreateFileCodecCallback)()
Registered FileCodec creation function prototype.
Definition: AkTypes.h:705
@ AK_ProcessNeeded
A routine needs to be executed on some CPU.
Definition: AkTypes.h:163
@ MultiPositionType_MultiSources
Simulate multiple sources in one sound playing, adding volumes. For instance, all the torches on your...
Definition: AkTypes.h:735
WwiseObjectID(AkUniqueID in_ID, AkNodeType in_eNodeType)
Definition: AkTypes.h:860
@ AK_EnableBusMeter_3DMeter
Definition: AkTypes.h:793
@ AK_CannotAddItseflAsAChild
It is not possible to add itself as its own child.
Definition: AkTypes.h:139
AkUInt32 iExternalSrcCookie
Cookie identifying the source, given by hashing the name of the source given in the project....
Definition: AkTypes.h:233
@ AK_DeviceNotCompatible
Incompatible Audio device.
Definition: AkTypes.h:181
AkReal32 fNext
Definition: AkTypes.h:603
AkReal32 EmitterAngle() const
Definition: AkTypes.h:504
@ AK_InvalidParameter
Something is not within bounds.
Definition: AkTypes.h:140
Ak3DPositionType
3D position type: defines what acts as the emitter position for computing spatialization against the ...
Definition: AkTypes.h:752
@ AK_PluginNotRegistered
Plugin is not registered. Make sure to implement a AK::PluginRegistration class for it and use AK_STA...
Definition: AkTypes.h:179
AkReal32 Y
Y Position.
Definition: AkTypes.h:319
AkUInt32 AkUniqueID
Unique 32-bit ID.
Definition: AkTypes.h:57
AkListenerPosition position
Definition: AkTypes.h:555
@ AkBusHierarchy_IsMaster
Flag is set to indicate a master bus (may be used in combination with other flags).
Definition: AkTypes.h:779
Configured audio settings.
Definition: AkTypes.h:203
@ AkDeviceState_NotPresent
The audio device is not present because the audio adapter that connects to the endpoint device has be...
Definition: AkTypes.h:213
AkUInt32 AkPluginID
Source or effect plug-in ID.
Definition: AkTypes.h:68
AkVector operator+(const AkVector &b) const
Definition: AkTypes.h:302
@ AK_InvalidFloatValue
One parameter has a invalid float value such as NaN, INF or FLT_MAX.
Definition: AkTypes.h:186
AkGameObjectID ListenerID() const
Get listener ID associated with the emitter-listener pair.
Definition: AkTypes.h:530
@ AK_AudioFileHeaderTooLarge
The file header is too large.
Definition: AkTypes.h:130
AkReal32 X
X Position.
Definition: AkTypes.h:318
@ AkCurveInterpolation_InvSCurve
Inversed S Curve.
Definition: AkTypes.h:570
@ AkCurveInterpolation_Log3
Log3.
Definition: AkTypes.h:567
AkUInt16 AkDataTypeID
Data sample type ID.
Definition: AkTypes.h:74
@ AkCurveInterpolation_Log1
Log1.
Definition: AkTypes.h:569
AkUInt32 AkAcousticTextureID
Acoustic Texture ID.
Definition: AkTypes.h:87
@ AkDeviceState_Unknown
The audio device state is unknown or invalid.
Definition: AkTypes.h:210
@ AK_DeviceNotReady
Specified ID doesn't match a valid hardware device: either the device doesn't exist or is disabled.
Definition: AkTypes.h:160
AkInt16 AkCaptureType
Default value: capture type is short.
Definition: AkTypes.h:923
@ AK_PlayingIDNotFound
Calling a function with a playing ID that is not known.
Definition: AkTypes.h:185
Spherical coordinates.
Definition: AkTypes.h:472
@ AK_Busy
The system is busy and could not process the request.
Definition: AkTypes.h:168
@ AK_AlreadyConnected
The stream is already connected to another node.
Definition: AkTypes.h:128
@ AK_PathNotFound
This path is not known.
Definition: AkTypes.h:142
@ AK_InitBankNotLoaded
The Init bank was not loaded yet, the sound engine isn't completely ready yet.
Definition: AkTypes.h:183
AkUInt32 AkCodecID
Codec plug-in ID.
Definition: AkTypes.h:69
AkUInt32 uPosition
Definition: AkTypes.h:874
AkMeteringFlags
Metering flags. Used for specifying bus metering, through AK::SoundEngine::RegisterBusVolumeCallback(...
Definition: AkTypes.h:786
#define AK_MAX_PATH
Maximum path length (each file/dir name is max 255 char)
Definition: AkTypes.h:119
AkReal32 Obstruction() const
Get the obstruction factor for this emitter-listener pair.
Definition: AkTypes.h:514
AkUInt16 AkDataCompID
Data compression format ID.
Definition: AkTypes.h:73
Positioning information for a sound, with specified subset of its channels.
Definition: AkTypes.h:458
Volume ramp specified by end points "previous" and "next".
Definition: AkTypes.h:597
@ AK_PluginMediaNotAvailable
Plugin media is not available for effect.
Definition: AkTypes.h:170
AkInt8 AkPriority
Priority.
Definition: AkTypes.h:72
AkReal32 Z
Z Position.
Definition: AkTypes.h:320
AkGroupType
Game sync group type.
Definition: AkTypes.h:195
@ AkPluginTypeEffect
Effect plug-in: applies processing to audio data.
Definition: AkTypes.h:804
int32_t AkInt32
Signed 32-bit integer.
Definition: AkTypes.h:98
uint8_t AkUInt8
Unsigned 8-bit integer.
Definition: AkTypes.h:83
AkRamp operator*(const AkRamp &in_rLhs, const AkRamp &in_rRhs)
Definition: AkTypes.h:605
AkReal32 obstruction
ObstructionLevel: [0.0f..1.0f].
Definition: AkTypes.h:453
WwiseObjectID(AkUniqueID in_ID)
Definition: AkTypes.h:848
@ AkCurveInterpolation_Constant
Constant ( not valid for fading values )
Definition: AkTypes.h:577
uint16_t AkUInt16
Unsigned 16-bit integer.
Definition: AkTypes.h:84
int8_t AkInt8
Signed 8-bit integer.
Definition: AkTypes.h:96
AkExternalSourceInfo(void *in_pInMemory, AkUInt32 in_uiMemorySize, AkUInt32 in_iExternalSrcCookie, AkCodecID in_idCodec)
Constructor: specify source by memory.
Definition: AkTypes.h:250
@ AK_3DPositionType_ListenerWithAutomation
3D spatialization is computed from the listener game object position, translated by user-defined auto...
Definition: AkTypes.h:755
@ AK_InvalidLanguage
The language is invalid (applies to the Low-Level I/O).
Definition: AkTypes.h:138
void SetOrientation(const AkVector &in_orientationFront, const AkVector &in_orientationTop)
Set orientation. Orientation front and top should be orthogonal and normalized.
Definition: AkTypes.h:410
AkRamp(AkReal32 in_fPrev, AkReal32 in_fNext)
Definition: AkTypes.h:599
static const AkMemPoolId AK_INVALID_POOL_ID
Invalid pool ID.
Definition: AkTypes.h:98
Polar coordinates.
Definition: AkTypes.h:465
@ AkDeviceState_Unplugged
The audio device is unplugged.
Definition: AkTypes.h:214
@ AK_NoDataNeeded
The consumer does not need more.
Definition: AkTypes.h:149
AkOSChar deviceName[AK_MAX_PATH]
The user-friendly name for the device.
Definition: AkTypes.h:221
AkReal32 GetGainForConnectionType(AkConnectionType in_eType) const
Get the emitter-listener-pair-specific gain (due to distance and cone attenuation),...
Definition: AkTypes.h:517
@ AkPluginTypeMixer
Mixer plug-in: mix voices at the bus level.
Definition: AkTypes.h:807
@ AK_SpatializationMode_PositionAndOrientation
Spatialization based on both emitter position and emitter orientation.
Definition: AkTypes.h:771
static const AkUInt32 AK_INVALID_OUTPUT_DEVICE_ID
Invalid Device ID.
Definition: AkTypes.h:106
@ AK_PartialSuccess
The operation succeeded partially.
Definition: AkTypes.h:126
@ ConnectionType_ReflectionsSend
Connection by a early reflections send.
Definition: AkTypes.h:296
@ AK_ACP_Error
Generic XMA decoder error.
Definition: AkTypes.h:189
AkCurveInterpolation
Curve interpolation types.
Definition: AkTypes.h:564
#define AK_CALLBACK(_type, _name)
AkUInt32 uNumSamplesPerFrame
Number of samples per audio frame (256, 512, 1024 or 2048).
Definition: AkTypes.h:204
@ AK_InvalidInstanceID
The InstanceID is invalid.
Definition: AkTypes.h:134
Ak3DSpatializationMode
3D spatialization mode.
Definition: AkTypes.h:768
@ AK_NotImplemented
This feature is not implemented.
Definition: AkTypes.h:123
IAkGrainCodec *(* AkCreateGrainCodecCallback)()
Registered IAkGrainCodec creation function prototype.
Definition: AkTypes.h:707
static const AkUniqueID AK_INVALID_UNIQUE_ID
Invalid unique 32-bit ID.
Definition: AkTypes.h:94
void SetOrientation(AkReal32 in_orientFrontX, AkReal32 in_orientFrontY, AkReal32 in_orientFrontZ, AkReal32 in_orientTopX, AkReal32 in_orientTopY, AkReal32 in_orientTopZ)
Set orientation. Orientation front and top should be orthogonal and normalized.
Definition: AkTypes.h:420
@ AkPluginTypeSink
Sink plug-in: implement custom sound engine end point.
Definition: AkTypes.h:808
AkPanningRule
Headphone / speakers panning rules.
Definition: AkTypes.h:760
AkUInt32 AkStateID
State ID.
Definition: AkTypes.h:58
@ AK_EnableBusMeter_KPower
Enable computation of K-weighted power metering (used as a basis for computing loudness,...
Definition: AkTypes.h:792
@ AkCurveInterpolation_Linear
Linear (Default)
Definition: AkTypes.h:571
bool bSpatialized
Listener scaling factor (see AK::SoundEngine::SetListenerScalingFactor()).
Definition: AkTypes.h:557
bool bIsBus
Definition: AkTypes.h:837
int16_t AkInt16
Signed 16-bit integer.
Definition: AkTypes.h:97
AkReal32 AkPitchValue
Pitch value.
Definition: AkTypes.h:63
static const AkPlayingID AK_INVALID_PLAYING_ID
Invalid playing ID.
Definition: AkTypes.h:96
@ AK_DataNeeded
The consumer needs more.
Definition: AkTypes.h:148
void SetPosition(const AkVector &in_position)
Set position.
Definition: AkTypes.h:390
@ AkDeviceState_Disabled
The audio device is disabled.
Definition: AkTypes.h:212
AkUInt32 AkSwitchStateID
Switch ID.
Definition: AkTypes.h:77
AkReal32 fDryMixGain
Angle between position vector and listener orientation.
Definition: AkTypes.h:536
AkReal32 fOcclusion
Emitter-listener-pair-specific gain (due to distance and cone attenuation) for user-defined send conn...
Definition: AkTypes.h:539
AkExternalSourceInfo()
Default constructor.
Definition: AkTypes.h:241
AkReal32 fListenerAngle
Angle between position vector and emitter orientation.
Definition: AkTypes.h:535
AkUInt16 AkPortNumber
Port number.
Definition: AkTypes.h:62
AkFileID idFile
File ID. If not zero, the source will be streaming from disk. This ID can be anything....
Definition: AkTypes.h:238
AkChannelMask uEmitterChannelMask
Emitter-listener-pair-specific focus.
Definition: AkTypes.h:543
@ AkPluginTypeSource
Source plug-in: creates sound by synthesis method (no input, just output).
Definition: AkTypes.h:803
@ AK_PathNoVertices
Stuff in vertices before trying to start it.
Definition: AkTypes.h:143
AkReal32 theta
Azimuth.
Definition: AkTypes.h:467
static const AkArgumentValueID AK_FALLBACK_ARGUMENTVALUE_ID
Fallback argument value ID.
Definition: AkTypes.h:104
@ AK_PathNotPaused
Only a paused path can be resumed.
Definition: AkTypes.h:145
AkAudioDeviceState
Definition: AkTypes.h:209
AkBusHierarchyFlags
Bus type bit field.
Definition: AkTypes.h:776
AkTransform emitter
Definition: AkTypes.h:532
static const AkGameObjectID AK_INVALID_GAME_OBJECT
Invalid game object (may also mean all game objects)
Definition: AkTypes.h:93
AkListener()
Definition: AkTypes.h:551
float AkReal32
32-bit floating point
Definition: AkTypes.h:103
@ AK_BalanceFadeHeight
Balance-Fade-Height: Traditional "box" or "car"-like panner.
Definition: AkTypes.h:746
@ AK_ChildAlreadyHasAParent
The child already has a parent.
Definition: AkTypes.h:137
@ AK_UnknownBankID
Trying to load a bank using an ID which is not defined.
Definition: AkTypes.h:154
Public data structures for converted file format.
Definition: AkTypes.h:869
AkUInt16 uAttenuation
Position of this point in samples at the source rate.
Definition: AkTypes.h:875
@ AkPluginTypeCodec
Compressor/decompressor plug-in (allows support for custom audio file types).
Definition: AkTypes.h:802
@ ConnectionType_UserDefSend
Connection by a user-defined send.
Definition: AkTypes.h:295
@ AK_StreamMgrNotInitialized
The stream manager should have been initialized at this point.
Definition: AkTypes.h:166
AkReal32 fUserDefAuxMixGain
Emitter-listener-pair-specific gain (due to distance and cone attenuation) for game-defined send conn...
Definition: AkTypes.h:538
static const AkFileID AK_INVALID_FILE_ID
Invalid file ID.
Definition: AkTypes.h:101
AkInt16 AkPluginParamID
Source or effect plug-in parameter ID.
Definition: AkTypes.h:71
static const AkAuxBusID AK_INVALID_AUX_ID
Invalid auxiliary bus ID (or no Aux bus ID)
Definition: AkTypes.h:100
@ AK_ElementAlreadyInList
The item could not be added because it was already in the list.
Definition: AkTypes.h:141
@ AK_Cancelled
The requested action was cancelled (not an error).
Definition: AkTypes.h:153
~AkEmitterListenerPair()
Destructor.
Definition: AkTypes.h:497
AkGameObjectID listenerID
Game object ID of the listener associated with this send. Use AK_INVALID_GAME_OBJECT as a wildcard to...
Definition: AkTypes.h:588
WwiseObjectID()
Definition: AkTypes.h:842
@ AK_EnableBusMeter_TruePeak
Enable computation of true peak metering (most CPU and memory intensive).
Definition: AkTypes.h:789
AkUInt32 AkAuxBusID
Auxilliary bus ID.
Definition: AkTypes.h:70
AkUInt64 AkOutputDeviceID
Audio Output device ID.
Definition: AkTypes.h:89
AkCreateBankSourceCallback pBankSrcCreateFunc
Definition: AkTypes.h:712
@ AK_DuplicateUniqueID
Two Wwise objects share the same ID.
Definition: AkTypes.h:182
@ AK_FormatNotReady
Source format not known yet.
Definition: AkTypes.h:157
3D vector.
Definition: AkTypes.h:301
@ AK_InsufficientMemory
Memory error.
Definition: AkTypes.h:152
AkCreateFileSourceCallback pFileSrcCreateFunc
Definition: AkTypes.h:711
@ AkBusHierarchy_Secondary
Flag is set to indicate the secondary bus hierarchy.
Definition: AkTypes.h:778
AkChannelMask uInputChannels
Channels to which the above position applies.
Definition: AkTypes.h:460
static const AkReal32 AK_DEFAULT_BANK_THROUGHPUT
Default bank load throughput (1 Mb/ms)
Definition: AkTypes.h:115
AkReal32 AkRtpcValue
Real time parameter control value.
Definition: AkTypes.h:79
AkReal32 fScalingFactor
Listener position (see AK::SoundEngine::SetPosition()).
Definition: AkTypes.h:556
@ AK_3DPositionType_Emitter
3D spatialization is computed directly from the emitter game object position.
Definition: AkTypes.h:753
AkReal32 ListenerAngle() const
Definition: AkTypes.h:508
AkUInt32 uNumSamplesPerSecond
Number of samples per second.
Definition: AkTypes.h:205
Listener information.
Definition: AkTypes.h:550
@ AK_OpenSLError
OpenSL returned an error. Check error log for more details.
Definition: AkTypes.h:178
AkUInt32 AkSwitchGroupID
Switch group ID.
Definition: AkTypes.h:76
@ AK_PathNotRunning
Only a running path can be paused.
Definition: AkTypes.h:144
@ AK_WrongBankVersion
The bank version is not compatible with the current bank reader.
Definition: AkTypes.h:158
static const AkMemPoolId AK_DEFAULT_POOL_ID
Default pool ID, same as AK_INVALID_POOL_ID.
Definition: AkTypes.h:99
uint32_t AkUInt32
Unsigned 32-bit integer.
Definition: AkTypes.h:85
@ AK_DirectSpeakerAssignment
No panning: route to matching channels between input and output.
Definition: AkTypes.h:745
@ AK_MustBeVirtualized
Sound was Not Allowed to play.
Definition: AkTypes.h:171
static const AkPriority AK_MAX_PRIORITY
Maximal priority value [0,100].
Definition: AkTypes.h:111
AkTransform position
Emitter position.
Definition: AkTypes.h:459
@ AkPluginTypeNone
Unknown/invalid plug-in type.
Definition: AkTypes.h:801
IAkSoftwareCodec *(* AkCreateBankSourceCallback)(void *in_pCtx)
Registered bank source node creation function prototype.
Definition: AkTypes.h:703
static const AkRtpcID AK_INVALID_RTPC_ID
Invalid RTPC ID.
Definition: AkTypes.h:95
AkReal32 fFocus
Emitter-listener-pair-specific spread.
Definition: AkTypes.h:542
AkReal32 occlusion
OcclusionLevel: [0.0f..1.0f].
Definition: AkTypes.h:452
AkConnectionType
Nature of the connection binding an input to a bus.
Definition: AkTypes.h:292
Position and orientation of game objects.
Definition: AkTypes.h:325
AkPluginType
Definition: AkTypes.h:800
AkUInt32 AkPlayingID
Playing ID.
Definition: AkTypes.h:60
AkCreateGrainCodecCallback pGrainCodecCreateFunc
Definition: AkTypes.h:714
@ AkBusHierarchy_Primary
Flag is set to indicate the primary bus hierarchy.
Definition: AkTypes.h:777
@ ConnectionType_GameDefSend
Connection by a game-defined send.
Definition: AkTypes.h:294
@ AK_RejectedByFilter
A play request was rejected due to the MIDI filter parameters.
Definition: AkTypes.h:173
AkAuxBusID auxBusID
Auxiliary bus ID.
Definition: AkTypes.h:589
@ AkCurveInterpolation_LastFadeCurve
Update this value to reflect last curve available for fades.
Definition: AkTypes.h:576
AkUInt32 uiMemorySize
Size of the data pointed by pInMemory.
Definition: AkTypes.h:237
AkCreateFileCodecCallback pFileCodecCreateFunc
Definition: AkTypes.h:713
static const AkChannelMask AK_INVALID_CHANNELMASK
Invalid channel mask.
Definition: AkTypes.h:105
AkUInt32 idDevice
Device ID for Wwise. This is the same as what is returned from AK::GetDeviceID and AK::GetDeviceIDFro...
Definition: AkTypes.h:220
AkUInt32 AkTriggerID
Trigger ID.
Definition: AkTypes.h:83
@ AK_EnableBusMeter_RMS
Enable computation of RMS metering.
Definition: AkTypes.h:790
Analyzed envelope point.
Definition: AkTypes.h:873