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

Was this page helpful?

Need Support?

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

Visit our Support page

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

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

Get started with Wwise