menu
 
版本
2023.1.14.8770

2024.1.6.8842

2023.1.14.8770

2022.1.19.8584

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624

menu

Wwise SDK 2023.1.14
AkTypes.h
浏览该文件的文档.
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  Copyright (c) 2025 Audiokinetic Inc.
25 *******************************************************************************/
26 
27 // AkTypes.h
28 
29 /// \file
30 /// Data type definitions.
31 
32 #ifndef _AK_DATA_TYPES_H_
33 #define _AK_DATA_TYPES_H_
34 
35 // Platform-specific section.
36 //----------------------------------------------------------------------------------------------------
37 #include <AK/AkPlatforms.h>
38 
39 
40 //----------------------------------------------------------------------------------------------------
41 
43 
44 #ifndef NULL
45  #ifdef __cplusplus
46  #define NULL 0
47  #else
48  #define NULL ((void *)0)
49  #endif
50 #endif
51 
52 typedef AkUInt32 AkUniqueID; ///< Unique 32-bit ID
53 typedef AkUInt32 AkStateID; ///< State ID
54 typedef AkUInt32 AkStateGroupID; ///< State group ID
55 typedef AkUInt32 AkPlayingID; ///< A unique identifier generated whenever a PostEvent is called (or when a Dynamic Sequence is created). This identifier serves as a handle to control and interact with individual playback instances, such as stopping a specific instance, and is the ID used in the EndOfEvent callback (see AkCallbackType).
56 typedef AkInt32 AkTimeMs; ///< Time in ms
57 typedef AkUInt16 AkPortNumber; ///< Port number
58 typedef AkReal32 AkPitchValue; ///< Pitch value
59 typedef AkReal32 AkVolumeValue; ///< Volume value( also apply to LFE )
60 typedef AkUInt64 AkGameObjectID; ///< Game object ID
61 typedef AkReal32 AkLPFType; ///< Low-pass filter type
62 typedef AkInt32 AkMemPoolId; ///< Memory pool ID
63 typedef AkUInt32 AkPluginID; ///< Source or effect plug-in ID
64 typedef AkUInt32 AkCodecID; ///< Codec plug-in ID
65 typedef AkUInt32 AkAuxBusID; ///< Auxilliary bus ID
66 typedef AkInt16 AkPluginParamID; ///< Source or effect plug-in parameter ID
67 typedef AkInt8 AkPriority; ///< Priority
68 typedef AkUInt16 AkDataCompID; ///< Data compression format ID
69 typedef AkUInt16 AkDataTypeID; ///< Data sample type ID
70 typedef AkUInt8 AkDataInterleaveID; ///< Data interleaved state ID
71 typedef AkUInt32 AkSwitchGroupID; ///< Switch group ID
72 typedef AkUInt32 AkSwitchStateID; ///< Switch ID
73 typedef AkUInt32 AkRtpcID; ///< Real time parameter control ID
74 typedef AkReal32 AkRtpcValue; ///< Real time parameter control value
75 typedef AkUInt32 AkBankID; ///< Run time bank ID
76 typedef AkUInt32 AkBankType; ///< Run time bank type
77 typedef AkUInt32 AkFileID; ///< Integer-type file identifier
78 typedef AkUInt32 AkDeviceID; ///< I/O device ID
79 typedef AkUInt32 AkTriggerID; ///< Trigger ID
80 typedef AkUInt32 AkArgumentValueID; ///< Argument value ID
81 typedef AkUInt32 AkChannelMask; ///< Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig.h.
82 typedef AkUInt32 AkModulatorID; ///< Modulator ID
83 typedef AkUInt32 AkAcousticTextureID; ///< Acoustic Texture ID
84 typedef AkUInt32 AkImageSourceID; ///< Image Source ID
85 typedef AkUInt64 AkOutputDeviceID; ///< Audio Output device ID
86 typedef AkUInt32 AkPipelineID; ///< Unique node (bus, voice) identifier for profiling.
87 typedef AkUInt32 AkRayID; ///< Unique (per emitter) identifier for an emitter-listener ray.
88 typedef AkUInt64 AkAudioObjectID; ///< Audio Object ID
89 typedef AkUInt32 AkJobType; ///< Job type identifier
90 
91 // Constants.
92 static const AkPluginID AK_INVALID_PLUGINID = (AkPluginID)-1; ///< Invalid FX ID
93 static const AkPluginID AK_INVALID_SHARE_SET_ID = (AkPluginID)-1; ///< Invalid Share Set ID
94 static const AkGameObjectID AK_INVALID_GAME_OBJECT = (AkGameObjectID)-1; ///< Invalid game object (may also mean all game objects)
95 static const AkUniqueID AK_INVALID_UNIQUE_ID = 0; ///< Invalid unique 32-bit ID
96 static const AkRtpcID AK_INVALID_RTPC_ID = AK_INVALID_UNIQUE_ID;///< Invalid RTPC ID
97 static const AkPlayingID AK_INVALID_PLAYING_ID = AK_INVALID_UNIQUE_ID;///< Invalid playing ID
98 static const AkUInt32 AK_DEFAULT_SWITCH_STATE = 0; ///< Switch selected if no switch has been set yet
99 static const AkMemPoolId AK_INVALID_POOL_ID = -1; ///< Invalid pool ID
100 static const AkMemPoolId AK_DEFAULT_POOL_ID = -1; ///< Default pool ID, same as AK_INVALID_POOL_ID
101 static const AkAuxBusID AK_INVALID_AUX_ID = AK_INVALID_UNIQUE_ID;///< Invalid auxiliary bus ID (or no Aux bus ID)
102 static const AkFileID AK_INVALID_FILE_ID = (AkFileID)-1; ///< Invalid file ID
103 static const AkDeviceID AK_INVALID_DEVICE_ID = (AkDeviceID)-1; ///< Invalid streaming device ID
104 static const AkBankID AK_INVALID_BANK_ID = AK_INVALID_UNIQUE_ID;///< Invalid bank ID
105 static const AkArgumentValueID AK_FALLBACK_ARGUMENTVALUE_ID = 0; ///< Fallback argument value ID
106 static const AkChannelMask AK_INVALID_CHANNELMASK = 0; ///< Invalid channel mask
107 static const AkUInt32 AK_INVALID_OUTPUT_DEVICE_ID = AK_INVALID_UNIQUE_ID;///< Invalid Device ID
108 static const AkPipelineID AK_INVALID_PIPELINE_ID = AK_INVALID_UNIQUE_ID;///< Invalid pipeline ID (for profiling)
109 static const AkAudioObjectID AK_INVALID_AUDIO_OBJECT_ID = (AkAudioObjectID)-1; ///< Invalid audio object ID
110 
111 // Priority.
112 static const AkPriority AK_DEFAULT_PRIORITY = 50; ///< Default sound / I/O priority
113 static const AkPriority AK_MIN_PRIORITY = 0; ///< Minimal priority value [0,100]
114 static const AkPriority AK_MAX_PRIORITY = 100; ///< Maximal priority value [0,100]
115 
116 // Default bank I/O settings.
117 static const AkPriority AK_DEFAULT_BANK_IO_PRIORITY = AK_DEFAULT_PRIORITY; ///< Default bank load I/O priority
118 static const AkReal32 AK_DEFAULT_BANK_THROUGHPUT = 1*1024*1024/1000.f; ///< Default bank load throughput (1 Mb/ms)
119 
120 // Bank version
121 static const AkUInt32 AK_SOUNDBANK_VERSION = 150; ///< Version of the soundbank reader
122 
123 // Job types
124 static const AkJobType AkJobType_Generic = 0; ///< Job type for general-purpose work
125 static const AkJobType AkJobType_AudioProcessing = 1; ///< Job type for DSP work
126 static const AkJobType AkJobType_SpatialAudio = 2; ///< Job type for Spatial Audio computations
127 static const AkUInt32 AK_NUM_JOB_TYPES = 3; ///< Number of possible job types recognized by the Sound Engine
128 
129 /// Standard function call result.
131 {
132  AK_NotImplemented = 0, ///< This feature is not implemented.
133  AK_Success = 1, ///< The operation was successful.
134  AK_Fail = 2, ///< The operation failed.
135  AK_PartialSuccess = 3, ///< The operation succeeded partially.
136  AK_NotCompatible = 4, ///< Incompatible formats
137  AK_AlreadyConnected = 5, ///< The stream is already connected to another node.
138  AK_InvalidFile = 7, ///< The provided file is the wrong format or unexpected values causes the file to be invalid.
139  AK_AudioFileHeaderTooLarge = 8, ///< The file header is too large.
140  AK_MaxReached = 9, ///< The maximum was reached.
141  AK_InvalidID = 14, ///< The ID is invalid.
142  AK_IDNotFound = 15, ///< The ID was not found.
143  AK_InvalidInstanceID = 16, ///< The InstanceID is invalid.
144  AK_NoMoreData = 17, ///< No more data is available from the source.
145  AK_InvalidStateGroup = 20, ///< The StateGroup is not a valid channel.
146  AK_ChildAlreadyHasAParent = 21, ///< The child already has a parent.
147  AK_InvalidLanguage = 22, ///< The language is invalid (applies to the Low-Level I/O).
148  AK_CannotAddItselfAsAChild = 23, ///< It is not possible to add itself as its own child.
149  AK_InvalidParameter = 31, ///< Something is not within bounds, check the documentation of the function returning this code.
150  AK_ElementAlreadyInList = 35, ///< The item could not be added because it was already in the list.
151  AK_PathNotFound = 36, ///< This path is not known.
152  AK_PathNoVertices = 37, ///< Stuff in vertices before trying to start it
153  AK_PathNotRunning = 38, ///< Only a running path can be paused.
154  AK_PathNotPaused = 39, ///< Only a paused path can be resumed.
155  AK_PathNodeAlreadyInList = 40, ///< This path is already there.
156  AK_PathNodeNotInList = 41, ///< This path is not there.
157  AK_DataNeeded = 43, ///< The consumer needs more.
158  AK_NoDataNeeded = 44, ///< The consumer does not need more.
159  AK_DataReady = 45, ///< The provider has available data.
160  AK_NoDataReady = 46, ///< The provider does not have available data.
161  AK_InsufficientMemory = 52, ///< Memory error.
162  AK_Cancelled = 53, ///< The requested action was cancelled (not an error).
163  AK_UnknownBankID = 54, ///< Trying to load a bank using an ID which is not defined.
164  AK_BankReadError = 56, ///< Error while reading a bank.
165  AK_InvalidSwitchType = 57, ///< Invalid switch type (used with the switch container)
166  AK_FormatNotReady = 63, ///< Source format not known yet.
167  AK_WrongBankVersion = 64, ///< The bank version is not compatible with the current bank reader.
168  AK_FileNotFound = 66, ///< File not found.
169  AK_DeviceNotReady = 67, ///< Specified ID doesn't match a valid hardware device: either the device doesn't exist or is disabled.
170  AK_BankAlreadyLoaded = 69, ///< The bank load failed because the bank is already loaded.
171  AK_RenderedFX = 71, ///< The effect on the node is rendered.
172  AK_ProcessNeeded = 72, ///< A routine needs to be executed on some CPU.
173  AK_ProcessDone = 73, ///< The executed routine has finished its execution.
174  AK_MemManagerNotInitialized = 74, ///< The memory manager should have been initialized at this point.
175  AK_StreamMgrNotInitialized = 75, ///< The stream manager should have been initialized at this point.
176  AK_SSEInstructionsNotSupported = 76,///< The machine does not support SSE instructions (required on PC).
177  AK_Busy = 77, ///< The system is busy and could not process the request.
178  AK_UnsupportedChannelConfig = 78, ///< Channel configuration is not supported in the current execution context.
179  AK_PluginMediaNotAvailable = 79, ///< Plugin media is not available for effect.
180  AK_MustBeVirtualized = 80, ///< Sound was Not Allowed to play.
181  AK_CommandTooLarge = 81, ///< SDK command is too large to fit in the command queue.
182  AK_RejectedByFilter = 82, ///< A play request was rejected due to the MIDI filter parameters.
183  AK_InvalidCustomPlatformName= 83, ///< Detecting incompatibility between Custom platform of banks and custom platform of connected application
184  AK_DLLCannotLoad = 84, ///< Plugin DLL could not be loaded, either because it is not found or one dependency is missing.
185  AK_DLLPathNotFound = 85, ///< Plugin DLL search path could not be found.
186  AK_NoJavaVM = 86, ///< No Java VM provided in AkInitSettings.
187  AK_OpenSLError = 87, ///< OpenSL returned an error. Check error log for more details.
188  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.
189  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)
190  AK_DeviceNotCompatible = 90, ///< Incompatible Audio device.
191  AK_DuplicateUniqueID = 91, ///< Two Wwise objects share the same ID.
192  AK_InitBankNotLoaded = 92, ///< The Init bank was not loaded yet, the sound engine isn't completely ready yet.
193  AK_DeviceNotFound = 93, ///< The specified device ID does not match with any of the output devices that the sound engine is currently using.
194  AK_PlayingIDNotFound = 94, ///< Calling a function with a playing ID that is not known.
195  AK_InvalidFloatValue = 95, ///< One parameter has a invalid float value such as NaN, INF or FLT_MAX.
196  AK_FileFormatMismatch = 96, ///< Media file format unexpected
197  AK_NoDistinctListener = 97, ///< No distinct listener provided for AddOutput
198  AK_ACP_Error = 98, ///< Generic XMA decoder error.
199  AK_ResourceInUse = 99, ///< Resource is in use and cannot be released.
200  AK_InvalidBankType = 100, ///< Invalid bank type. The bank type was either supplied through a function call (e.g. LoadBank) or obtained from a bank loaded from memory.
201  AK_AlreadyInitialized = 101, ///< Init() was called but that element was already initialized.
202  AK_NotInitialized = 102, ///< The component being used is not initialized. Most likely AK::SoundEngine::Init() was not called yet, or AK::SoundEngine::Term was called too early.
203  AK_FilePermissionError = 103, ///< The file access permissions prevent opening a file.
204  AK_UnknownFileError = 104, ///< Rare file error occured, as opposed to AK_FileNotFound or AK_FilePermissionError. This lumps all unrecognized OS file system errors.
205  AK_TooManyConcurrentOperations = 105, ///< When using StdStream, file operations can be blocking or not. When not blocking, operations need to be synchronized externally properly. If not, this error occurs.
206  AK_InvalidFileSize = 106, ///< The file requested was found and opened but is either 0 bytes long or not the expected size. This usually point toward a Low Level IO Hook implementation error.
207  AK_Deferred = 107, ///< Returned by functions to indicate to the caller the that the operation is done asynchronously. Used by Low Level IO Hook implementations when async operation are suppored by the hardware.
208  AK_FilePathTooLong = 108, ///< The combination of base path and file name exceeds maximum buffer lengths.
209  AK_InvalidState = 109, ///< This method should not be called when the object is in its current state.
210 };
211 
212 /// Game sync group type
214 {
215  // should stay set as Switch = 0 and State = 1
216  AkGroupType_Switch = 0, ///< Type switch
217  AkGroupType_State = 1 ///< Type state
218 };
219 
220 /// Configured audio settings
222 {
223  AkUInt32 uNumSamplesPerFrame; ///< Number of samples per audio frame (256, 512, 1024 or 2048).
224  AkUInt32 uNumSamplesPerSecond; ///< Number of samples per second.
225 };
226 
228 {
229  AkDeviceState_Unknown = 0, ///< The audio device state is unknown or invalid.
230  AkDeviceState_Active = 1 << 0, ///< The audio device is active That is, the audio adapter that connects to the endpoint device is present and enabled.
231  AkDeviceState_Disabled = 1 << 1, ///< The audio device is disabled.
232  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.
233  AkDeviceState_Unplugged = 1 << 3, ///< The audio device is unplugged.
235 };
236 
238 {
239  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.
240  AkOSChar deviceName[AK_MAX_PATH]; ///< The user-friendly name for the device.
241  AkAudioDeviceState deviceStateMask = AkDeviceState_Unknown; ///< Bitmask used to filter the device based on their state.
242  bool isDefaultDevice = false; ///< Identify default device. Always false when not supported.
243 };
244 
245 /// This structure allows the game to provide audio files to fill the external sources. See \ref AK::SoundEngine::PostEvent
246 /// You can specify a streaming file or a file in-memory, regardless of the "Stream" option in the Wwise project.
247 /// The only file format accepted is a fully formed WEM file, as converted by Wwise.
248 /// \akwarning
249 /// 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).
250 /// \endakwarning
251 /// \akwarning
252 /// When using the in-memory file (pInMemory & uiMemorySize), it is the responsibility of the game to ensure the memory stays valid for the entire duration of the playback.
253 /// You can achieve this by using the AK_EndOfEvent callback to track when the Event ends.
254 /// \endakwarning
255 /// \sa
256 /// - AK::SoundEngine::PostEvent
258 {
259  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
260  AkCodecID idCodec; ///< Codec ID for the file. One of the audio formats defined in AkTypes.h (AKCODECID_XXX)
261  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). /// The only file format accepted is a fully formed WEM file, as converted by Wwise.
262  void* pInMemory; ///< Pointer to the in-memory file. If not NULL, the source will be read from memory. Set szFile and idFile to NULL. The only file format accepted is a fully formed WEM file, as converted by Wwise.
263  AkUInt32 uiMemorySize; ///< Size of the data pointed by pInMemory
264  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.
265 
266  /// Default constructor.
268  : iExternalSrcCookie( 0 )
269  , idCodec( 0 )
270  , szFile( 0 )
271  , pInMemory( 0 )
272  , uiMemorySize( 0 )
273  , idFile( 0 ) {}
274 
275  /// Constructor: specify source by memory.
277  void* in_pInMemory, ///< Pointer to the in-memory file.
278  AkUInt32 in_uiMemorySize, ///< Size of data.
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( in_pInMemory )
286  , uiMemorySize( in_uiMemorySize )
287  , idFile( 0 ) {}
288 
289  /// Constructor: specify source by streaming file name.
291  AkOSChar * in_pszFileName, ///< File name.
292  AkUInt32 in_iExternalSrcCookie, ///< Cookie.
293  AkCodecID in_idCodec ///< Codec ID.
294  )
295  : iExternalSrcCookie( in_iExternalSrcCookie )
296  , idCodec( in_idCodec )
297  , szFile( in_pszFileName )
298  , pInMemory( 0 )
299  , uiMemorySize( 0 )
300  , idFile( 0 ) {}
301 
302  /// Constructor: specify source by streaming file ID.
304  AkFileID in_idFile, ///< File ID.
305  AkUInt32 in_iExternalSrcCookie, ///< Cookie.
306  AkCodecID in_idCodec ///< Codec ID.
307  )
308  : iExternalSrcCookie( in_iExternalSrcCookie )
309  , idCodec( in_idCodec )
310  , szFile( 0 )
311  , pInMemory( 0 )
312  , uiMemorySize( 0 )
313  , idFile( in_idFile ) {}
314 };
315 
316 /// Nature of the connection binding an input to a bus.
318 {
319  ConnectionType_Direct = 0x0, ///< Direct (main, dry) connection.
320  ConnectionType_GameDefSend = 0x1, ///< Connection by a game-defined send.
321  ConnectionType_UserDefSend = 0x2, ///< Connection by a user-defined send.
322  ConnectionType_ReflectionsSend = 0x3, ///< Connection by a early reflections send.
323 };
324 
325 /// 3D 64-bit vector. Intended as storage for world positions of sounds and objects, benefiting from 64-bit precision range
327 {
328  inline AkVector64 operator+(const AkVector64& b) const
329  {
330  AkVector64 v;
331 
332  v.X = X + b.X;
333  v.Y = Y + b.Y;
334  v.Z = Z + b.Z;
335 
336  return v;
337  }
338 
339  inline AkVector64 operator-(const AkVector64& b) const
340  {
341  AkVector64 v;
342 
343  v.X = X - b.X;
344  v.Y = Y - b.Y;
345  v.Z = Z - b.Z;
346 
347  return v;
348  }
349 
350  inline void Zero()
351  {
352  X = 0; Y = 0; Z = 0;
353  }
354 
355  AkReal64 X; ///< X Position
356  AkReal64 Y; ///< Y Position
357  AkReal64 Z; ///< Z Position
358 };
359 
360 /// 3D vector for some operations in 3D space. Typically intended only for localized calculations due to 32-bit precision
361 struct AkVector
362 {
363  inline AkVector operator+(const AkVector& b) const
364  {
365  AkVector v;
366 
367  v.X = X + b.X;
368  v.Y = Y + b.Y;
369  v.Z = Z + b.Z;
370 
371  return v;
372  }
373 
374  inline AkVector operator-(const AkVector& b) const
375  {
376  AkVector v;
377 
378  v.X = X - b.X;
379  v.Y = Y - b.Y;
380  v.Z = Z - b.Z;
381 
382  return v;
383  }
384 
385  inline AkVector operator*(const AkReal32 f) const
386  {
387  AkVector v;
388 
389  v.X = X * f;
390  v.Y = Y * f;
391  v.Z = Z * f;
392 
393  return v;
394  }
395 
396  inline AkVector operator/(const AkReal32 f) const
397  {
398  AkVector v;
399 
400  v.X = X / f;
401  v.Y = Y / f;
402  v.Z = Z / f;
403 
404  return v;
405  }
406 
407  inline void Zero()
408  {
409  X = 0; Y = 0; Z = 0;
410  }
411 
412  // Helper for implicit conversion to AkVector64. ConvertAkVectorToAkVector64 is still preferable to make it more obvious where upconversion occurs.
413  inline operator</span> AkVector64() const { return AkVector64{ X, Y, Z }; }
414 
415  AkReal32 X; ///< X Position
416  AkReal32 Y; ///< Y Position
417  AkReal32 Z; ///< Z Position
418 };
419 
420 /// Position and orientation of game objects in the world (i.e. supports 64-bit-precision position)
422 {
423 public:
424  //
425  // Getters.
426  //
427 
428  /// Get position vector.
429  inline const AkVector64 & Position() const
430  {
431  return position;
432  }
433 
434  /// Get orientation front vector.
435  inline const AkVector & OrientationFront() const
436  {
437  return orientationFront;
438  }
439 
440  /// Get orientation top vector.
441  inline const AkVector & OrientationTop() const
442  {
443  return orientationTop;
444  }
445 
446  //
447  // Setters.
448  //
449 
450  /// Set position and orientation. Orientation front and top should be orthogonal and normalized.
451  inline void Set(
452  const AkVector64 & in_position, ///< Position vector.
453  const AkVector & in_orientationFront, ///< Orientation front
454  const AkVector & in_orientationTop ///< Orientation top
455  )
456  {
457  position = in_position;
458  orientationFront = in_orientationFront;
459  orientationTop = in_orientationTop;
460  }
461 
462  /// Set position and orientation. Orientation front and top should be orthogonal and normalized.
463  inline void Set(
464  AkReal64 in_positionX, ///< Position x
465  AkReal64 in_positionY, ///< Position y
466  AkReal64 in_positionZ, ///< Position z
467  AkReal32 in_orientFrontX, ///< Orientation front x
468  AkReal32 in_orientFrontY, ///< Orientation front y
469  AkReal32 in_orientFrontZ, ///< Orientation front z
470  AkReal32 in_orientTopX, ///< Orientation top x
471  AkReal32 in_orientTopY, ///< Orientation top y
472  AkReal32 in_orientTopZ ///< Orientation top z
473  )
474  {
475  position.X = in_positionX;
476  position.Y = in_positionY;
477  position.Z = in_positionZ;
478  orientationFront.X = in_orientFrontX;
479  orientationFront.Y = in_orientFrontY;
480  orientationFront.Z = in_orientFrontZ;
481  orientationTop.X = in_orientTopX;
482  orientationTop.Y = in_orientTopY;
483  orientationTop.Z = in_orientTopZ;
484  }
485 
486  /// Set position.
487  inline void SetPosition(
488  const AkVector64 & in_position ///< Position vector.
489  )
490  {
491  position = in_position;
492  }
493 
494  /// Set position.
495  inline void SetPosition(
496  AkReal64 in_x, ///< x
497  AkReal64 in_y, ///< y
498  AkReal64 in_z ///< z
499  )
500  {
501  position.X = in_x;
502  position.Y = in_y;
503  position.Z = in_z;
504  }
505 
506  /// Set orientation. Orientation front and top should be orthogonal and normalized.
507  inline void SetOrientation(
508  const AkVector & in_orientationFront, ///< Orientation front
509  const AkVector & in_orientationTop ///< Orientation top
510  )
511  {
512  orientationFront = in_orientationFront;
513  orientationTop = in_orientationTop;
514  }
515 
516  /// Set orientation. Orientation front and top should be orthogonal and normalized.
517  inline void SetOrientation(
518  AkReal32 in_orientFrontX, ///< Orientation front x
519  AkReal32 in_orientFrontY, ///< Orientation front y
520  AkReal32 in_orientFrontZ, ///< Orientation front z
521  AkReal32 in_orientTopX, ///< Orientation top x
522  AkReal32 in_orientTopY, ///< Orientation top y
523  AkReal32 in_orientTopZ ///< Orientation top z
524  )
525  {
526  orientationFront.X = in_orientFrontX;
527  orientationFront.Y = in_orientFrontY;
528  orientationFront.Z = in_orientFrontZ;
529  orientationTop.X = in_orientTopX;
530  orientationTop.Y = in_orientTopY;
531  orientationTop.Z = in_orientTopZ;
532  }
533 
534 private:
535  AkVector orientationFront; ///< Orientation of the listener
536  AkVector orientationTop; ///< Top orientation of the listener
537  AkVector64 position; ///< Position of the listener
538 };
539 
540 /// Position and orientation of objects in a "local" space
542 {
543 public:
544  //
545  // Getters.
546  //
547 
548  /// Get position vector.
549  inline const AkVector& Position() const
550  {
551  return position;
552  }
553 
554  /// Get orientation front vector.
555  inline const AkVector& OrientationFront() const
556  {
557  return orientationFront;
558  }
559 
560  /// Get orientation top vector.
561  inline const AkVector& OrientationTop() const
562  {
563  return orientationTop;
564  }
565 
566  //
567  // Setters.
568  //
569 
570  /// Set position and orientation. Orientation front and top should be orthogonal and normalized.
571  inline void Set(
572  const AkVector& in_position, ///< Position vector.
573  const AkVector& in_orientationFront, ///< Orientation front
574  const AkVector& in_orientationTop ///< Orientation top
575  )
576  {
577  position = in_position;
578  orientationFront = in_orientationFront;
579  orientationTop = in_orientationTop;
580  }
581 
582  /// Set position and orientation. Orientation front and top should be orthogonal and normalized.
583  inline void Set(
584  AkReal32 in_positionX, ///< Position x
585  AkReal32 in_positionY, ///< Position y
586  AkReal32 in_positionZ, ///< Position z
587  AkReal32 in_orientFrontX, ///< Orientation front x
588  AkReal32 in_orientFrontY, ///< Orientation front y
589  AkReal32 in_orientFrontZ, ///< Orientation front z
590  AkReal32 in_orientTopX, ///< Orientation top x
591  AkReal32 in_orientTopY, ///< Orientation top y
592  AkReal32 in_orientTopZ ///< Orientation top z
593  )
594  {
595  position.X = in_positionX;
596  position.Y = in_positionY;
597  position.Z = in_positionZ;
598  orientationFront.X = in_orientFrontX;
599  orientationFront.Y = in_orientFrontY;
600  orientationFront.Z = in_orientFrontZ;
601  orientationTop.X = in_orientTopX;
602  orientationTop.Y = in_orientTopY;
603  orientationTop.Z = in_orientTopZ;
604  }
605 
606  /// Set position.
607  inline void SetPosition(
608  const AkVector& in_position ///< Position vector.
609  )
610  {
611  position = in_position;
612  }
613 
614  /// Set position.
615  inline void SetPosition(
616  AkReal32 in_x, ///< x
617  AkReal32 in_y, ///< y
618  AkReal32 in_z ///< z
619  )
620  {
621  position.X = in_x;
622  position.Y = in_y;
623  position.Z = in_z;
624  }
625 
626  /// Set orientation. Orientation front and top should be orthogonal and normalized.
627  inline void SetOrientation(
628  const AkVector& in_orientationFront, ///< Orientation front
629  const AkVector& in_orientationTop ///< Orientation top
630  )
631  {
632  orientationFront = in_orientationFront;
633  orientationTop = in_orientationTop;
634  }
635 
636  /// Set orientation. Orientation front and top should be orthogonal and normalized.
637  inline void SetOrientation(
638  AkReal32 in_orientFrontX, ///< Orientation front x
639  AkReal32 in_orientFrontY, ///< Orientation front y
640  AkReal32 in_orientFrontZ, ///< Orientation front z
641  AkReal32 in_orientTopX, ///< Orientation top x
642  AkReal32 in_orientTopY, ///< Orientation top y
643  AkReal32 in_orientTopZ ///< Orientation top z
644  )
645  {
646  orientationFront.X = in_orientFrontX;
647  orientationFront.Y = in_orientFrontY;
648  orientationFront.Z = in_orientFrontZ;
649  orientationTop.X = in_orientTopX;
650  orientationTop.Y = in_orientTopY;
651  orientationTop.Z = in_orientTopZ;
652  }
653 
654  // Helper for implicit conversion to AkWorldTransform. ConvertAkTransformToAkWorldTransform is still preferable to make it more obvious where upconversion occurs.
655  inline operator</span> AkWorldTransform() const {
656  AkWorldTransform ret;
657  ret.Set(position, orientationFront, orientationTop);
658  return ret;
659  }
660 
661 private:
662  AkVector orientationFront; ///< Orientation of the listener
663  AkVector orientationTop; ///< Top orientation of the listener
664  AkVector position; ///< Position of the listener
665 };
666 
667 
668 namespace AK
669 {
670  // Helper functions to make transitions between 64b and 32b conversion easier
671 
672  // Warning: this conversion incurs a loss of precision and range
674  {
675  AkVector out;
676  out.X = (AkReal32)in.X;
677  out.Y = (AkReal32)in.Y;
678  out.Z = (AkReal32)in.Z;
679  return out;
680  }
681 
682  // Warning: this conversion incurs a loss of precision and range in position data
684  {
685  AkTransform out;
687  out.Set(pos, in.OrientationFront(), in.OrientationTop());
688  return out;
689  }
690 
692  {
693  AkVector64 out;
694  out.X = (AkReal64)in.X;
695  out.Y = (AkReal64)in.Y;
696  out.Z = (AkReal64)in.Z;
697  return out;
698  }
699 
701  {
702  AkWorldTransform out;
704  out.Set(pos, in.OrientationFront(), in.OrientationTop());
705  return out;
706  }
707 }
708 
709 /// Positioning information for a sound.
711 
712 /// Positioning information for a listener.
714 
715 /// Obstruction/occlusion pair for a position
717 {
718  AkReal32 occlusion; ///< OcclusionLevel: [0.0f..1.0f]
719  AkReal32 obstruction; ///< ObstructionLevel: [0.0f..1.0f]
720 };
721 
722 /// Positioning information for a sound, with specified subset of its channels.
724 {
725  AkWorldTransform position; ///< Emitter position.
726  AkChannelMask uInputChannels; ///< Channels to which the above position applies.
727  char padding[4]; ///< In order to preserve consistent struct size across archs, we need some padding
728 };
729 
730 /// Polar coordinates.
732 {
733  AkReal32 r; ///< Norm/distance
734  AkReal32 theta; ///< Azimuth
735 };
736 
737 /// Spherical coordinates.
739 {
740  AkReal32 phi; ///< Elevation
741 };
742 
743 /// Emitter-listener pair: Positioning data pertaining to a single pair of emitter and listener.
745 {
746 public:
747  /// Constructor.
749  : fDistance(0.f)
750  , fEmitterAngle(0.f)
751  , fListenerAngle(0.f)
752  , fDryMixGain(1.f)
753  , fGameDefAuxMixGain(1.f)
754  , fUserDefAuxMixGain(1.f)
755  , fOcclusion(0.f)
756  , fObstruction(0.f)
757  , fDiffraction(0.f)
758  , fTransmissionLoss(0.f)
759  , fSpread(0.f)
760  , fAperture(100.f)
761  , fScalingFactor(1.f)
762  , fPathGain(1.f)
763  , uEmitterChannelMask(0xFFFFFFFF)
764  , id(0)
765  , m_uListenerID(0)
766  {
767  }
768  /// Destructor.
770 
771  /// Get distance.
772  inline AkReal32 Distance() const { return fDistance; }
773 
774  /// Get the absolute angle, in radians between 0 and pi, of the emitter's orientation relative to
775  /// the line that joins the emitter and the listener.
776  inline AkReal32 EmitterAngle() const { return fEmitterAngle; }
777 
778  /// Get the absolute angle, in radians between 0 and pi, of the listener's orientation relative to
779  /// the line that joins the emitter and the listener
780  inline AkReal32 ListenerAngle() const { return fListenerAngle; }
781 
782  /// Get the occlusion factor for this emitter-listener pair
783  inline AkReal32 Occlusion() const { return fOcclusion; }
784 
785  /// Get the obstruction factor for this emitter-listener pair
786  inline AkReal32 Obstruction() const { return fObstruction; }
787 
788  /// Get the diffraction factor for this emitter-listener pair
789  inline AkReal32 Diffraction() const { return fDiffraction; }
790 
791  /// Get the transmission loss factor for this emitter-listener pair
792  inline AkReal32 TransmissionLoss() const { return fTransmissionLoss; }
793 
794  /// Get the overall path-contribution gain, used to scale the dry + gamedef + userdef gains
795  inline AkReal32 PathGain() const { return fPathGain; }
796 
797  /// Get the emitter-listener-pair-specific gain (due to distance and cone attenuation), linear [0,1], for a given connection type.
799  {
800  if (in_eType == ConnectionType_Direct)
801  return fDryMixGain;
802  else if (in_eType == ConnectionType_GameDefSend)
803  return fGameDefAuxMixGain;
804  else if (in_eType == ConnectionType_UserDefSend)
805  return fUserDefAuxMixGain;
806  else
807  return 1.0f;
808  }
809 
810  /// Get the emitter-listener pair's ID.
811  inline AkRayID ID() const { return id; }
812 
813  /// Get listener ID associated with the emitter-listener pair.
814  inline AkGameObjectID ListenerID() const { return m_uListenerID; }
815 
816  AkWorldTransform emitter; ///< Emitter position.
817  AkReal32 fDistance; ///< Distance between emitter and listener.
818  AkReal32 fEmitterAngle; ///< Angle between position vector and emitter orientation.
819  AkReal32 fListenerAngle; ///< Angle between position vector and listener orientation.
820  AkReal32 fDryMixGain; ///< Emitter-listener-pair-specific gain (due to distance and cone attenuation) for direct connections.
821  AkReal32 fGameDefAuxMixGain; ///< Emitter-listener-pair-specific gain (due to distance and cone attenuation) for game-defined send connections.
822  AkReal32 fUserDefAuxMixGain; ///< Emitter-listener-pair-specific gain (due to distance and cone attenuation) for user-defined send connections.
823  AkReal32 fOcclusion; ///< Emitter-listener-pair-specific occlusion factor
824  AkReal32 fObstruction; ///< Emitter-listener-pair-specific obstruction factor
825  AkReal32 fDiffraction; ///< Emitter-listener-pair-specific diffraction coefficient
826  AkReal32 fTransmissionLoss; ///< Emitter-listener-pair-specific transmission occlusion.
827  AkReal32 fSpread; ///< Emitter-listener-pair-specific spread
828  AkReal32 fAperture; ///< Emitter-listener-pair-specific aperture
829  AkReal32 fScalingFactor; ///< Combined scaling factor due to both emitter and listener.
830  AkReal32 fPathGain; ///< Emitter-listener-pair-specific overall gain that scales fDryMixGain, fGameDefAuxMixGain and fUserDefAuxMixGain
831  AkChannelMask uEmitterChannelMask; ///< Channels of the emitter that apply to this ray.
832 protected:
833  AkRayID id; ///< ID of this emitter-listener pair, unique for a given emitter.
834  AkGameObjectID m_uListenerID; ///< Listener game object ID.
835 };
836 
837 /// Listener information.
839 {
841  : fScalingFactor( 1.0f )
842  , bSpatialized( true )
843  {}
844  AkListenerPosition position; /// Listener position (see AK::SoundEngine::SetPosition()).
845  AkReal32 fScalingFactor; /// Listener scaling factor (see AK::SoundEngine::SetListenerScalingFactor()).
846  bool bSpatialized; /// Whether listener is spatialized or not (see AK::SoundEngine::SetListenerSpatialization()).
847 };
848 
849 // If you modify AkCurveInterpolation, don't forget to modify WAAPI validation schema accordingly.
850 
851 /// Curve interpolation types
853 {
854 //DONT GO BEYOND 15! (see below for details)
855 //Curves from 0 to LastFadeCurve NEED TO BE A MIRROR IMAGE AROUND LINEAR (eg. Log3 is the inverse of Exp3)
859  AkCurveInterpolation_InvSCurve = 3, ///< Inversed S Curve
860  AkCurveInterpolation_Linear = 4, ///< Linear (Default)
861  AkCurveInterpolation_SCurve = 5, ///< S Curve
863  AkCurveInterpolation_SineRecip = 7, ///< Reciprocal of sine curve
865  AkCurveInterpolation_LastFadeCurve = 8, ///< Update this value to reflect last curve available for fades
866  AkCurveInterpolation_Constant = 9 ///< Constant ( not valid for fading values )
867 //DONT GO BEYOND 15! The value is stored on 5 bits,
868 //but we can use only 4 bits for the actual values, keeping
869 //the 5th bit at 0 to void problems when the value is
870 //expanded to 32 bits.
871 };
872 #define AKCURVEINTERPOLATION_NUM_STORAGE_BIT 5 ///< Internal storage restriction, for internal use only.
873 
874 /// Auxiliary bus sends information per game object per given auxiliary bus.
876 {
877  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).
878  AkAuxBusID auxBusID; ///< Auxiliary bus ID.
879  AkReal32 fControlValue; ///< A value in the range [0.0f:16.0f] ( -∞ dB to +24 dB).
880  ///< Represents the attenuation or amplification factor applied to the volume of the sound going through the auxiliary bus.
881  ///< A value greater than 1.0f will amplify the sound.
882 };
883 
884 /// Volume ramp specified by end points "previous" and "next".
885 struct AkRamp
886 {
887  AkRamp() : fPrev( 1.f ), fNext( 1.f ) {}
888  AkRamp( AkReal32 in_fPrev, AkReal32 in_fNext ) : fPrev( in_fPrev ), fNext( in_fNext ) {}
889  AkRamp & operator*=(const AkRamp& in_rRhs) { fPrev *= in_rRhs.fPrev; fNext *= in_rRhs.fNext; return *this; }
890 
893 };
894 inline AkRamp operator*(const AkRamp& in_rLhs, const AkRamp& in_rRhs)
895 {
896  AkRamp result(in_rLhs);
897  result *= in_rRhs;
898  return result;
899 }
900 
901 /// Type for a point in an RTPC or Attenuation curve.
902 template< class VALUE_TYPE >
904 {
905  AkGraphPointBase() = default;
906 
907  AkGraphPointBase(AkReal32 in_from, VALUE_TYPE in_to, AkCurveInterpolation in_interp)
908  : From(in_from)
909  , To(in_to)
910  , Interp(in_interp)
911  {}
912 
913  AkReal32 From; ///< Represents the value on the X axis.
914  VALUE_TYPE To; ///< Represents the value on the Y axis.
915  AkCurveInterpolation Interp; ///< The shape of the interpolation curve between this point and the next.
916 
917  bool operator==(const AkGraphPointBase& other) const
918  {
919  return From == other.From && To == other.To && Interp == other.Interp;
920  }
921  bool operator!=(const AkGraphPointBase& other) const
922  {
923  return !(*this == other);
924  }
925 };
926 
927 // Every point of a conversion graph
929 
930 /// Curve types of the Attenuation Editor.
932 {
933  AttenuationCurveID_VolumeDry = 0, ///< The distance-driven dry volume curve.
934  AttenuationCurveID_VolumeAuxGameDef, ///< The distance-driven game-defined auxiliary send curve.
935  AttenuationCurveID_VolumeAuxUserDef, ///< The distance-driven user-defined auxiliary send curve.
936  AttenuationCurveID_LowPassFilter, ///< The distance-driven low-pass filter (pre send) curve.
937  AttenuationCurveID_HighPassFilter, ///< The distance-driven high-pass filter (pre send) curve.
938  AttenuationCurveID_Spread, ///< The distance-driven Spread curve.
939  AttenuationCurveID_Focus, ///< The distance-driven Focus curve.
940  AttenuationCurveID_ObstructionVolume, ///< The obstruction-driven volume curve.
941  AttenuationCurveID_ObstructionLPF, ///< The obstruction-driven low-pass filter curve.
942  AttenuationCurveID_ObstructionHPF, ///< The obstruction-driven high-pass filter curve.
943  AttenuationCurveID_OcclusionVolume, ///< The occlusion-driven volume curve.
944  AttenuationCurveID_OcclusionLPF, ///< The occlusion-driven low-pass filter curve.
945  AttenuationCurveID_OcclusionHPF, ///< The occlusion-driven high-pass filter curve.
946  AttenuationCurveID_DiffractionVolume, ///< The diffraction-driven volume curve.
947  AttenuationCurveID_DiffractionLPF, ///< The diffraction-driven low-pass filter curve.
948  AttenuationCurveID_DiffractionHPF, ///< The diffraction-driven high-pass filter curve.
949  AttenuationCurveID_TransmissionVolume, ///< The transmission-driven volume curve.
950  AttenuationCurveID_TransmissionLPF, ///< The transmission-driven low-pass filter curve.
951  AttenuationCurveID_TransmissionHPF, ///< The transmission-driven high-pass filter curve.
952 
953  AttenuationCurveID_MaxCount, ///< The maximum number of curve types.
954 
955  AttenuationCurveID_Project = 254, ///< Symbol for "Use Project".
956  AttenuationCurveID_None = 255 ///< Symbol for "None".
957 };
958 
959 // ---------------------------------------------------------------
960 // Languages
961 // ---------------------------------------------------------------
962 #define AK_MAX_LANGUAGE_NAME_SIZE (32)
963 
964 // ---------------------------------------------------------------
965 // File Type ID Definitions
966 // ---------------------------------------------------------------
967 
968 // These correspond to IDs specified in the conversion plug-ins' XML
969 // files. Audio sources persist them to "remember" their format.
970 // DO NOT CHANGE THEM without talking to someone in charge of persistence!
971 
972 // Company ID for plugin development.
973 #define AKCOMPANYID_PLUGINDEV_MIN (64)
974 #define AKCOMPANYID_PLUGINDEV_MAX (255)
975 
976 // Vendor ID.
977 #define AKCOMPANYID_AUDIOKINETIC (0) ///< Audiokinetic inc.
978 #define AKCOMPANYID_AUDIOKINETIC_EXTERNAL (1) ///< Audiokinetic inc.
979 #define AKCOMPANYID_MCDSP (256) ///< McDSP
980 #define AKCOMPANYID_WAVEARTS (257) ///< WaveArts
981 #define AKCOMPANYID_PHONETICARTS (258) ///< Phonetic Arts
982 #define AKCOMPANYID_IZOTOPE (259) ///< iZotope
983 #define AKCOMPANYID_CRANKCASEAUDIO (261) ///< Crankcase Audio
984 #define AKCOMPANYID_IOSONO (262) ///< IOSONO
985 #define AKCOMPANYID_AUROTECHNOLOGIES (263) ///< Auro Technologies
986 #define AKCOMPANYID_DOLBY (264) ///< Dolby
987 #define AKCOMPANYID_TWOBIGEARS (265) ///< Two Big Ears
988 #define AKCOMPANYID_OCULUS (266) ///< Oculus
989 #define AKCOMPANYID_BLUERIPPLESOUND (267) ///< Blue Ripple Sound
990 #define AKCOMPANYID_ENZIEN (268) ///< Enzien Audio
991 #define AKCOMPANYID_KROTOS (269) ///< Krotos (Dehumanizer)
992 #define AKCOMPANYID_NURULIZE (270) ///< Nurulize
993 #define AKCOMPANYID_SUPERPOWERED (271) ///< Super Powered
994 #define AKCOMPANYID_GOOGLE (272) ///< Google
995 //#define AKCOMPANYID_NVIDIA (273) ///< NVIDIA // Commented out to avoid redefinition, provider is already defining it.
996 //#define AKCOMPANYID_RESERVED (274) ///< Reserved // Commented out to avoid redefinition, provider is already defining it.
997 //#define AKCOMPANYID_MICROSOFT (275) ///< Microsoft // Commented out to avoid redefinition, provider is already defining it.
998 //#define AKCOMPANYID_YAMAHA (276) ///< YAMAHA // Commented out to avoid redefinition, provider is already defining it.
999 #define AKCOMPANYID_VISISONICS (277) ///< Visisonics
1000 
1001 // File/encoding types of Audiokinetic.
1002 #define AKCODECID_BANK (0) ///< Bank encoding
1003 #define AKCODECID_PCM (1) ///< PCM encoding
1004 #define AKCODECID_ADPCM (2) ///< ADPCM encoding
1005 #define AKCODECID_XMA (3) ///< XMA encoding
1006 #define AKCODECID_VORBIS (4) ///< Vorbis encoding
1007 #define AKCODECID_WIIADPCM (5) ///< ADPCM encoding on the Wii
1008 #define AKCODECID_PCMEX (7) ///< Standard PCM WAV file parser for Wwise Authoring
1009 #define AKCODECID_EXTERNAL_SOURCE (8) ///< External Source (unknown encoding)
1010 #define AKCODECID_XWMA (9) ///< xWMA encoding
1011 #define AKCODECID_FILE_PACKAGE (11) ///< File package files generated by the File Packager utility.
1012 #define AKCODECID_ATRAC9 (12) ///< ATRAC-9 encoding
1013 #define AKCODECID_VAG (13) ///< VAG/HE-VAG encoding
1014 #define AKCODECID_PROFILERCAPTURE (14) ///< Profiler capture file (.prof) as written through AK::SoundEngine::StartProfilerCapture
1015 #define AKCODECID_ANALYSISFILE (15) ///< Analysis file
1016 #define AKCODECID_MIDI (16) ///< MIDI file
1017 #define AKCODECID_OPUSNX (17) ///< OpusNX encoding
1018 #define AKCODECID_CAF (18) ///< CAF file
1019 #define AKCODECID_AKOPUS (19) ///< Opus encoding, 2018.1 to 2019.2
1020 #define AKCODECID_AKOPUS_WEM (20) ///< Opus encoding, wrapped in WEM
1021 #define AKCODECID_MEMORYMGR_DUMP (21) ///< Memory stats file as written through AK::MemoryMgr::DumpToFile();
1022 #define AKCODECID_SONY360 (22) ///< Sony 360 encoding
1023 
1024 #define AKCODECID_BANK_EVENT (30) ///< Bank encoding for event banks. These banks are contained in the /event sub-folder.
1025 #define AKCODECID_BANK_BUS (31) ///< Bank encoding for bus banks. These banks are contained in the /bus sub-folder.
1026 
1027 #define AKPLUGINID_METER (129) ///< Meter Plugin
1028 #define AKPLUGINID_RECORDER (132) ///< Recorder Plugin
1029 #define AKPLUGINID_IMPACTER (184)
1030 #define AKPLUGINID_SYSTEM_OUTPUT_META (900) ///< System output metadata
1031 #define AKPLUGINID_AUDIO_OBJECT_ATTENUATION_META (901) ///< Attenuation curve metadata
1032 #define AKPLUGINID_AUDIO_OBJECT_PRIORITY_META (902) ///< Audio object priority metadata
1033 
1034 #define AKEXTENSIONID_SPATIALAUDIO (800) ///< Spatial Audio
1035 #define AKEXTENSIONID_INTERACTIVEMUSIC (801) ///< Interactive Music
1036 #define AKEXTENSIONID_MIDIDEVICEMGR (802) ///< MIDI Device Manager (Authoring)
1037 
1038 //The following are internally defined
1039 #define AK_WAVE_FORMAT_VAG 0xFFFB
1040 #define AK_WAVE_FORMAT_AT9 0xFFFC
1041 #define AK_WAVE_FORMAT_VORBIS 0xFFFF
1042 #define AK_WAVE_FORMAT_OPUSNX 0x3039
1043 #define AK_WAVE_FORMAT_OPUS 0x3040
1044 #define AK_WAVE_FORMAT_OPUS_WEM 0x3041
1045 #define WAVE_FORMAT_XMA2 0x166
1046 
1047 //-----------------------------------------------------------------------------
1048 // Codecs
1049 //-----------------------------------------------------------------------------
1050 
1051 class IAkSoftwareCodec;
1052 class IAkFileCodec;
1053 class IAkGrainCodec;
1054 /// Registered file source creation function prototype.
1055 AK_CALLBACK( IAkSoftwareCodec*, AkCreateFileSourceCallback )( void* in_pCtx );
1056 /// Registered bank source node creation function prototype.
1057 AK_CALLBACK( IAkSoftwareCodec*, AkCreateBankSourceCallback )( void* in_pCtx );
1058 /// Registered FileCodec creation function prototype.
1060 /// Registered IAkGrainCodec creation function prototype.
1062 
1064 {
1069 };
1070 
1071 //-----------------------------------------------------------------------------
1072 // Banks
1073 //-----------------------------------------------------------------------------
1074 
1075 /// Bank types
1077 {
1078  AkBankType_User = AKCODECID_BANK, ///< User-defined bank.
1079  AkBankType_Event = AKCODECID_BANK_EVENT, ///< Bank generated for one event.
1080  AkBankType_Bus = AKCODECID_BANK_BUS, ///< Bank generated for one bus or aux bus.
1081 };
1082 
1083 //-----------------------------------------------------------------------------
1084 // Positioning
1085 //-----------------------------------------------------------------------------
1086 
1087 namespace AK
1088 {
1089  namespace SoundEngine
1090  {
1091  // If you modify MultiPositionType, don't forget to modify WAAPI validation schema accordingly.
1092 
1093  /// MultiPositionType.
1094  /// \aknote
1095  /// - If a sound has diffraction enabled, it is treated as <tt>MultiPositionType_MultiDirections</tt>. <tt>MultiPositionType_MultiSources</tt> is not supported in this case.
1096  /// \endaknote
1097  /// \sa
1098  /// - AK::SoundEngine::SetMultiplePosition()
1099  /// - \ref soundengine_3dpositions_multiplepos
1101  {
1102  MultiPositionType_SingleSource, ///< Used for normal sounds, not expected to pass to AK::SoundEngine::SetMultiplePosition() (if done, only the first position will be used).
1103  MultiPositionType_MultiSources, ///< Simulate multiple sources in one sound playing, adding volumes. For instance, all the torches on your level emitting using only one sound.
1104  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 ).
1105  };
1106  }
1107 }
1108 
1109 #define AK_PANNER_NUM_STORAGE_BITS 3
1110 /// Speaker panning type: type of panning logic when object is not 3D spatialized (i.e. when Ak3DSpatializationMode is AK_SpatializationMode_None).
1112 {
1113  AK_DirectSpeakerAssignment = 0, ///< No panning: route to matching channels between input and output.
1114  AK_BalanceFadeHeight = 1, ///< Balance-Fade-Height: Traditional "box" or "car"-like panner.
1115  AK_SteeringPanner = 2 ///< Steering panner.
1116 };
1117 
1118 #define AK_POSSOURCE_NUM_STORAGE_BITS 3
1119 /// 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.
1121 {
1122  AK_3DPositionType_Emitter = 0, ///< 3D spatialization is computed directly from the emitter game object position.
1123  AK_3DPositionType_EmitterWithAutomation = 1, ///< 3D spatialization is computed from the emitter game object position, translated by user-defined automation.
1124  AK_3DPositionType_ListenerWithAutomation = 2 ///< 3D spatialization is computed from the listener game object position, translated by user-defined automation.
1125 };
1126 
1127 /// Flags to independently set the position of the emitter or listener component on a game object.
1129 {
1130  AkSetPositionFlags_Emitter = 1 << 0, // Only set the emitter component position.
1131  AkSetPositionFlags_Listener = 1 << 1, // Only set the listener component position.
1132 
1133  AkSetPositionFlags_Default = (AkSetPositionFlags_Emitter | AkSetPositionFlags_Listener) // Default: set both emitter and listener component positions.
1134 };
1135 
1136 /// Headphone / speakers panning rules
1138 {
1139  AkPanningRule_Speakers = 0, ///< Left and right positioned 60 degrees apart (by default - see AK::SoundEngine::GetSpeakerAngles()).
1140  AkPanningRule_Headphones = 1 ///< Left and right positioned 180 degrees apart.
1141 };
1142 
1143 #define AK_SPAT_NUM_STORAGE_BITS 3
1144 /// 3D spatialization mode.
1146 {
1147  AK_SpatializationMode_None = 0, ///< No spatialization
1148  AK_SpatializationMode_PositionOnly = 1, ///< Spatialization based on emitter position only.
1149  AK_SpatializationMode_PositionAndOrientation = 2 ///< Spatialization based on both emitter position and emitter orientation.
1150 };
1151 
1152 /// Bus type bit field.
1154 {
1155  AkBusHierarchy_Primary = 1 << 0, ///< Flag is set to indicate the primary bus hierarchy.
1156  AkBusHierarchy_Secondary = 1 << 1, ///< Flag is set to indicate the secondary bus hierarchy.
1157  AkBusHierarchy_IsMaster = 1 << 7 ///< Flag is set to indicate a master bus (may be used in combination with other flags).
1158 };
1159 
1160 #define AK_MAX_BITS_METERING_FLAGS (5) // Keep in sync with AkMeteringFlags.
1161 
1162 /// Metering flags. Used for specifying bus metering, through AK::SoundEngine::RegisterBusVolumeCallback() or AK::IAkMixerPluginContext::SetMeteringFlags().
1164 {
1165  AK_NoMetering = 0, ///< No metering.
1166  AK_EnableBusMeter_Peak = 1 << 0, ///< Enable computation of peak metering.
1167  AK_EnableBusMeter_TruePeak = 1 << 1, ///< Enable computation of true peak metering (most CPU and memory intensive).
1168  AK_EnableBusMeter_RMS = 1 << 2, ///< Enable computation of RMS metering.
1169  // 1 << 3 is reserved.
1170  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).
1171  AK_EnableBusMeter_3DMeter = 1 << 5 ///< Enable computation of data necessary to render a 3D visualization of volume distribution over the surface of a sphere.
1172 };
1173 
1174 /// Plug-in type.
1175 /// \sa
1176 /// - AkPluginInfo
1178 {
1179  AkPluginTypeNone = 0, ///< Unknown/invalid plug-in type.
1180  AkPluginTypeCodec = 1, ///< Compressor/decompressor plug-in (allows support for custom audio file types).
1181  AkPluginTypeSource = 2, ///< Source plug-in: creates sound by synthesis method (no input, just output).
1182  AkPluginTypeEffect = 3, ///< Effect plug-in: applies processing to audio data.
1183  //AkPluginTypeMotionDevice = 4, ///< Motion Device plug-in: feeds movement data to devices. Deprecated by Motion refactor.
1184  //AkPluginTypeMotionSource = 5, ///< Motion Device source plug-in: feeds movement data to device busses. Deprecated by Motion refactor.
1185  AkPluginTypeMixer = 6, ///< Mixer plug-in: mix voices at the bus level.
1186  AkPluginTypeSink = 7, ///< Sink plug-in: implement custom sound engine end point.
1187  AkPluginTypeGlobalExtension = 8, ///< Global Extension plug-in: (e.g. Spatial Audio, Interactive Music)
1188  AkPluginTypeMetadata = 9, ///< Metadata plug-in: applies object-based processing to audio data
1189  AkPluginTypeMask = 0xf ///< Plug-in type mask is 4 bits.
1190 };
1191 
1192 ////////////////////////////////////////////////////////////////////////////////
1193 // Wwise ID system
1194 ////////////////////////////////////////////////////////////////////////////////
1196 {
1199 };
1200 
1202 {
1203 public:
1204 
1205  bool operator == ( const WwiseObjectIDext& in_rOther ) const
1206  {
1207  return in_rOther.id == id && in_rOther.bIsBus == bIsBus;
1208  }
1209 
1211  {
1213  }
1214 
1216  bool bIsBus;
1217 };
1218 
1220 {
1222  {
1223  id = AK_INVALID_UNIQUE_ID;
1224  bIsBus = false;
1225  }
1226 
1228  {
1229  id = in_ID;
1230  bIsBus = false;
1231  }
1232 
1233  WwiseObjectID( AkUniqueID in_ID, bool in_bIsBus )
1234  {
1235  id = in_ID;
1236  bIsBus = in_bIsBus;
1237  }
1238 
1239  WwiseObjectID( AkUniqueID in_ID, AkNodeType in_eNodeType )
1240  {
1241  id = in_ID;
1242  bIsBus = in_eNodeType == AkNodeType_Bus;
1243  }
1244 };
1245 
1246 /// Public data structures for converted file format.
1247 namespace AkFileParser
1248 {
1249 #pragma pack(push, 1)
1250  /// Analyzed envelope point.
1252  {
1253  AkUInt32 uPosition; /// Position of this point in samples at the source rate.
1254  AkUInt16 uAttenuation; /// Approximate _attenuation_ at this location relative to this source's maximum, in dB (absolute value).
1255  };
1256 #pragma pack(pop)
1257 }
1258 
1259 #ifndef AK_ASYNC_OPEN_DEFAULT
1260 #define AK_ASYNC_OPEN_DEFAULT (false) ///< Refers to asynchronous file opening in default low-level IO.
1261 #endif
1262 
1263 #ifndef AK_COMM_DEFAULT_DISCOVERY_PORT
1264 #define AK_COMM_DEFAULT_DISCOVERY_PORT 24024 ///< Default discovery port for most platforms using IP sockets for communication.
1265 #endif
1266 
1267 #ifdef AK_CAPTURE_TYPE_FLOAT
1268 typedef AkReal32 AkCaptureType;
1269 #else
1270 typedef AkInt16 AkCaptureType; ///< Default value: capture type is short.
1271 #endif
1272 
1273 #define AkRegister
1274 
1275 #endif //_AK_DATA_TYPES_H_
@ AkNodeType_Bus
Definition: AkTypes.h:1198
@ AK_PathNodeNotInList
This path is not there.
Definition: AkTypes.h:156
AkEmitterListenerPair()
Constructor.
Definition: AkTypes.h:748
AkAudioDeviceState deviceStateMask
Bitmask used to filter the device based on their state.
Definition: AkTypes.h:241
AkGameObjectID m_uListenerID
Listener game object ID.
Definition: AkTypes.h:834
@ AK_EnableBusMeter_Peak
Enable computation of peak metering.
Definition: AkTypes.h:1166
@ AttenuationCurveID_Focus
The distance-driven Focus curve.
Definition: AkTypes.h:939
AkUInt32 AkStateGroupID
State group ID
Definition: AkTypes.h:54
AkUniqueID id
Definition: AkTypes.h:1215
@ AkBankType_Bus
Bank generated for one bus or aux bus.
Definition: AkTypes.h:1080
AkNodeType GetType()
Definition: AkTypes.h:1210
AkReal32 fControlValue
Definition: AkTypes.h:879
void SetPosition(AkReal32 in_x, AkReal32 in_y, AkReal32 in_z)
Set position.
Definition: AkTypes.h:615
static const AkPriority AK_DEFAULT_BANK_IO_PRIORITY
Default bank load I/O priority
Definition: AkTypes.h:117
AkUInt8 AkDataInterleaveID
Data interleaved state ID
Definition: AkTypes.h:70
@ AK_UnsupportedChannelConfig
Channel configuration is not supported in the current execution context.
Definition: AkTypes.h:178
@ AK_NoMetering
No metering.
Definition: AkTypes.h:1165
static const AkJobType AkJobType_AudioProcessing
Job type for DSP work
Definition: AkTypes.h:125
@ AK_DirectSpeakerAssignment
No panning: route to matching channels between input and output.
Definition: AkTypes.h:1113
@ AK_InvalidCustomPlatformName
Detecting incompatibility between Custom platform of banks and custom platform of connected applicati...
Definition: AkTypes.h:183
AkExternalSourceInfo(AkFileID in_idFile, AkUInt32 in_iExternalSrcCookie, AkCodecID in_idCodec)
Constructor: specify source by streaming file ID.
Definition: AkTypes.h:303
@ AK_InvalidSwitchType
Invalid switch type (used with the switch container)
Definition: AkTypes.h:165
AkRamp & operator*=(const AkRamp &in_rRhs)
Definition: AkTypes.h:889
AkReal32 Occlusion() const
Get the occlusion factor for this emitter-listener pair
Definition: AkTypes.h:783
@ AK_FileNotFound
File not found.
Definition: AkTypes.h:168
uint16_t AkUInt16
Unsigned 16-bit integer
AkGraphPointBase< AkReal32 > AkRTPCGraphPoint
Definition: AkTypes.h:928
void Zero()
Definition: AkTypes.h:407
@ AttenuationCurveID_LowPassFilter
The distance-driven low-pass filter (pre send) curve.
Definition: AkTypes.h:936
AkVector64 ConvertAkVectorToAkVector64(AkVector in)
Definition: AkTypes.h:691
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:517
@ AK_EnableBusMeter_RMS
Enable computation of RMS metering.
Definition: AkTypes.h:1168
Audiokinetic namespace
AkInt32 AkTimeMs
Time in ms
Definition: AkTypes.h:56
Auxiliary bus sends information per game object per given auxiliary bus.
Definition: AkTypes.h:876
@ AK_Fail
The operation failed.
Definition: AkTypes.h:134
AkReal32 fEmitterAngle
Angle between position vector and emitter orientation.
Definition: AkTypes.h:818
@ AttenuationCurveID_DiffractionHPF
The diffraction-driven high-pass filter curve.
Definition: AkTypes.h:948
@ AttenuationCurveID_VolumeDry
The distance-driven dry volume curve.
Definition: AkTypes.h:933
Obstruction/occlusion pair for a position
Definition: AkTypes.h:717
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:262
void Set(const AkVector64 &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:451
AkReal32 Diffraction() const
Get the diffraction factor for this emitter-listener pair
Definition: AkTypes.h:789
@ AK_DataAlignmentError
A pointer to audio data was not aligned to the platform's required alignment (check AkTypes....
Definition: AkTypes.h:189
AkCodecID idCodec
Codec ID for the file. One of the audio formats defined in AkTypes.h (AKCODECID_XXX)
Definition: AkTypes.h:260
@ AttenuationCurveID_DiffractionVolume
The diffraction-driven volume curve.
Definition: AkTypes.h:946
AkUInt32 AkModulatorID
Modulator ID
Definition: AkTypes.h:82
AkReal32 fPrev
Definition: AkTypes.h:891
@ AK_DataReady
The provider has available data.
Definition: AkTypes.h:159
AkWorldTransform AkListenerPosition
Positioning information for a listener.
Definition: AkTypes.h:713
@ AK_NotCompatible
Incompatible formats
Definition: AkTypes.h:136
AkReal32 phi
Elevation
Definition: AkTypes.h:740
#define AK_MAX_PATH
Maximum path length.
Definition: AkTypes.h:82
@ AkGroupType_Switch
Type switch
Definition: AkTypes.h:216
IAkSoftwareCodec *(* AkCreateFileSourceCallback)(void *in_pCtx)
Registered file source creation function prototype.
Definition: AkTypes.h:1055
@ AkSetPositionFlags_Default
Definition: AkTypes.h:1133
@ AttenuationCurveID_VolumeAuxGameDef
The distance-driven game-defined auxiliary send curve.
Definition: AkTypes.h:934
AkUInt32 AkRtpcID
Real time parameter control ID
Definition: AkTypes.h:73
AkUInt64 AkAudioObjectID
Audio Object ID
Definition: AkTypes.h:88
@ AK_SpatializationMode_PositionOnly
Spatialization based on emitter position only.
Definition: AkTypes.h:1148
@ AK_InvalidID
The ID is invalid.
Definition: AkTypes.h:141
@ AkCurveInterpolation_SCurve
S Curve
Definition: AkTypes.h:861
void Zero()
Definition: AkTypes.h:350
@ AttenuationCurveID_Project
Symbol for "Use Project".
Definition: AkTypes.h:955
@ AkCurveInterpolation_SineRecip
Reciprocal of sine curve
Definition: AkTypes.h:863
@ AK_EnableBusMeter_KPower
Enable computation of K-weighted power metering (used as a basis for computing loudness,...
Definition: AkTypes.h:1170
@ AK_3DPositionType_EmitterWithAutomation
3D spatialization is computed from the emitter game object position, translated by user-defined autom...
Definition: AkTypes.h:1123
@ ConnectionType_Direct
Direct (main, dry) connection.
Definition: AkTypes.h:319
@ AK_InvalidFile
The provided file is the wrong format or unexpected values causes the file to be invalid.
Definition: AkTypes.h:138
@ AK_SSEInstructionsNotSupported
The machine does not support SSE instructions (required on PC).
Definition: AkTypes.h:176
AkReal32 Distance() const
Get distance.
Definition: AkTypes.h:772
AkUInt32 AkPipelineID
Unique node (bus, voice) identifier for profiling.
Definition: AkTypes.h:86
@ AK_NoDistinctListener
No distinct listener provided for AddOutput
Definition: AkTypes.h:197
AkVector operator/(const AkReal32 f) const
Definition: AkTypes.h:396
bool operator==(const WwiseObjectIDext &in_rOther) const
Definition: AkTypes.h:1205
@ AkSetPositionFlags_Listener
Definition: AkTypes.h:1131
bool isDefaultDevice
Identify default device. Always false when not supported.
Definition: AkTypes.h:242
@ AK_DLLPathNotFound
Plugin DLL search path could not be found.
Definition: AkTypes.h:185
@ AK_CommandTooLarge
SDK command is too large to fit in the command queue.
Definition: AkTypes.h:181
@ AK_MaxReached
The maximum was reached.
Definition: AkTypes.h:140
static const AkJobType AkJobType_Generic
Job type for general-purpose work
Definition: AkTypes.h:124
AkUInt64 AkGameObjectID
Game object ID
Definition: AkTypes.h:60
@ AkPluginTypeMixer
Mixer plug-in: mix voices at the bus level.
Definition: AkTypes.h:1185
AkNodeType
Definition: AkTypes.h:1196
const AkVector & Position() const
Get position vector.
Definition: AkTypes.h:549
AkUInt32 AkBankID
Run time bank ID
Definition: AkTypes.h:75
AkOSChar * szFile
File path for the source. If not NULL, the source will be streaming from disk. Set pInMemory to NULL....
Definition: AkTypes.h:261
const AkVector & OrientationFront() const
Get orientation front vector.
Definition: AkTypes.h:555
AkReal32 fSpread
Emitter-listener-pair-specific spread
Definition: AkTypes.h:827
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:583
VALUE_TYPE To
Represents the value on the Y axis.
Definition: AkTypes.h:914
@ AkNodeType_Default
Definition: AkTypes.h:1197
const AkVector & OrientationTop() const
Get orientation top vector.
Definition: AkTypes.h:561
AKRESULT
Standard function call result.
Definition: AkTypes.h:131
static const AkDeviceID AK_INVALID_DEVICE_ID
Invalid streaming device ID
Definition: AkTypes.h:103
AkRamp()
Definition: AkTypes.h:887
@ AK_NoDataReady
The provider does not have available data.
Definition: AkTypes.h:160
@ AkGroupType_State
Type state
Definition: AkTypes.h:217
static const AkPriority AK_MIN_PRIORITY
Minimal priority value [0,100]
Definition: AkTypes.h:113
AkMeteringFlags
Metering flags. Used for specifying bus metering, through AK::SoundEngine::RegisterBusVolumeCallback(...
Definition: AkTypes.h:1164
@ AK_ResourceInUse
Resource is in use and cannot be released.
Definition: AkTypes.h:199
@ AK_DeviceNotFound
The specified device ID does not match with any of the output devices that the sound engine is curren...
Definition: AkTypes.h:193
AkUInt32 AkDeviceID
I/O device ID
Definition: AkTypes.h:78
@ AK_NotInitialized
The component being used is not initialized. Most likely AK::SoundEngine::Init() was not called yet,...
Definition: AkTypes.h:202
AkReal32 r
Norm/distance
Definition: AkTypes.h:733
static const AkPluginID AK_INVALID_PLUGINID
Invalid FX ID
Definition: AkTypes.h:92
@ AK_NoMoreData
No more data is available from the source.
Definition: AkTypes.h:144
WwiseObjectID(AkUniqueID in_ID, bool in_bIsBus)
Definition: AkTypes.h:1233
@ AkCurveInterpolation_Sine
Sine
Definition: AkTypes.h:857
AkUInt32 AkImageSourceID
Image Source ID
Definition: AkTypes.h:84
@ AkPluginTypeEffect
Effect plug-in: applies processing to audio data.
Definition: AkTypes.h:1182
AkInt32 AkMemPoolId
Memory pool ID
Definition: AkTypes.h:62
AkUInt32 AkArgumentValueID
Argument value ID
Definition: AkTypes.h:80
AkVector64 operator-(const AkVector64 &b) const
Definition: AkTypes.h:339
@ AK_NoJavaVM
No Java VM provided in AkInitSettings.
Definition: AkTypes.h:186
static const AkUInt32 AK_SOUNDBANK_VERSION
Version of the soundbank reader
Definition: AkTypes.h:121
AkReal32 fDistance
Distance between emitter and listener.
Definition: AkTypes.h:817
@ AK_FileFormatMismatch
Media file format unexpected
Definition: AkTypes.h:196
static const AkBankID AK_INVALID_BANK_ID
Invalid bank ID
Definition: AkTypes.h:104
@ AttenuationCurveID_OcclusionHPF
The occlusion-driven high-pass filter curve.
Definition: AkTypes.h:945
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:571
@ AK_RenderedFX
The effect on the node is rendered.
Definition: AkTypes.h:171
static const AkAudioObjectID AK_INVALID_AUDIO_OBJECT_ID
Invalid audio object ID
Definition: AkTypes.h:109
@ AkDeviceState_All
Includes audio devices in all states.
Definition: AkTypes.h:234
AkGraphPointBase(AkReal32 in_from, VALUE_TYPE in_to, AkCurveInterpolation in_interp)
Definition: AkTypes.h:907
AkUInt32 AkChannelMask
Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig....
Definition: AkTypes.h:81
AkReal32 AkLPFType
Low-pass filter type
Definition: AkTypes.h:61
char AkOSChar
Generic character string
Definition: AkTypes.h:60
AkReal32 PathGain() const
Get the overall path-contribution gain, used to scale the dry + gamedef + userdef gains
Definition: AkTypes.h:795
uint8_t AkUInt8
Unsigned 8-bit integer
const AkVector64 & Position() const
Get position vector.
Definition: AkTypes.h:429
@ AK_BankReadError
Error while reading a bank.
Definition: AkTypes.h:164
@ AK_InvalidStateGroup
The StateGroup is not a valid channel.
Definition: AkTypes.h:145
static const AkUInt32 AK_DEFAULT_SWITCH_STATE
Switch selected if no switch has been set yet
Definition: AkTypes.h:98
void SetPosition(const AkVector64 &in_position)
Set position.
Definition: AkTypes.h:487
AkExternalSourceInfo(AkOSChar *in_pszFileName, AkUInt32 in_iExternalSrcCookie, AkCodecID in_idCodec)
Constructor: specify source by streaming file name.
Definition: AkTypes.h:290
@ AK_IDNotFound
The ID was not found.
Definition: AkTypes.h:142
@ AkPluginTypeMask
Plug-in type mask is 4 bits.
Definition: AkTypes.h:1189
char padding[4]
In order to preserve consistent struct size across archs, we need some padding
Definition: AkTypes.h:727
AkWorldTransform emitter
Emitter position.
Definition: AkTypes.h:816
@ AK_BankAlreadyLoaded
The bank load failed because the bank is already loaded.
Definition: AkTypes.h:170
@ MultiPositionType_SingleSource
Used for normal sounds, not expected to pass to AK::SoundEngine::SetMultiplePosition() (if done,...
Definition: AkTypes.h:1102
AkReal32 AkVolumeValue
Volume value( also apply to LFE )
Definition: AkTypes.h:59
@ AkCurveInterpolation_Exp1
Exp1
Definition: AkTypes.h:862
@ AttenuationCurveID_TransmissionLPF
The transmission-driven low-pass filter curve.
Definition: AkTypes.h:950
@ AK_DLLCannotLoad
Plugin DLL could not be loaded, either because it is not found or one dependency is missing.
Definition: AkTypes.h:184
@ AK_3DPositionType_Emitter
3D spatialization is computed directly from the emitter game object position.
Definition: AkTypes.h:1122
bool operator==(const AkGraphPointBase &other) const
Definition: AkTypes.h:917
@ AK_ProcessDone
The executed routine has finished its execution.
Definition: AkTypes.h:173
float AkReal32
32-bit floating point
@ AK_Success
The operation was successful.
Definition: AkTypes.h:133
AkReal32 fObstruction
Emitter-listener-pair-specific obstruction factor
Definition: AkTypes.h:824
int32_t AkInt32
Signed 32-bit integer
@ AkDeviceState_Active
The audio device is active That is, the audio adapter that connects to the endpoint device is present...
Definition: AkTypes.h:230
@ AK_InvalidFileSize
The file requested was found and opened but is either 0 bytes long or not the expected size....
Definition: AkTypes.h:206
Position and orientation of game objects in the world (i.e. supports 64-bit-precision position)
Definition: AkTypes.h:422
Emitter-listener pair: Positioning data pertaining to a single pair of emitter and listener.
Definition: AkTypes.h:745
AkReal32 From
Represents the value on the X axis.
Definition: AkTypes.h:913
@ AK_PathNodeAlreadyInList
This path is already there.
Definition: AkTypes.h:155
AkSetPositionFlags
Flags to independently set the position of the emitter or listener component on a game object.
Definition: AkTypes.h:1129
AkReal32 fGameDefAuxMixGain
Emitter-listener-pair-specific gain (due to distance and cone attenuation) for game-defined send conn...
Definition: AkTypes.h:821
@ AkCurveInterpolation_Exp3
Exp3
Definition: AkTypes.h:864
AkUInt32 AkFileID
Integer-type file identifier
Definition: AkTypes.h:77
AkReal32 fPathGain
Emitter-listener-pair-specific overall gain that scales fDryMixGain, fGameDefAuxMixGain and fUserDefA...
Definition: AkTypes.h:830
static const AkPriority AK_DEFAULT_PRIORITY
Default sound / I/O priority
Definition: AkTypes.h:112
@ AK_MemManagerNotInitialized
The memory manager should have been initialized at this point.
Definition: AkTypes.h:174
@ AK_BalanceFadeHeight
Balance-Fade-Height: Traditional "box" or "car"-like panner.
Definition: AkTypes.h:1114
IAkFileCodec *(* AkCreateFileCodecCallback)()
Registered FileCodec creation function prototype.
Definition: AkTypes.h:1059
@ AK_ProcessNeeded
A routine needs to be executed on some CPU.
Definition: AkTypes.h:172
@ MultiPositionType_MultiDirections
Simulate one sound coming from multiple directions. Useful for repositionning sounds based on wall op...
Definition: AkTypes.h:1104
WwiseObjectID(AkUniqueID in_ID, AkNodeType in_eNodeType)
Definition: AkTypes.h:1239
AkUInt32 iExternalSrcCookie
Cookie identifying the source, given by hashing the name of the source given in the project....
Definition: AkTypes.h:259
@ AK_DeviceNotCompatible
Incompatible Audio device.
Definition: AkTypes.h:190
void SetOrientation(const AkVector &in_orientationFront, const AkVector &in_orientationTop)
Set orientation. Orientation front and top should be orthogonal and normalized.
Definition: AkTypes.h:507
AkReal32 fNext
Definition: AkTypes.h:892
AkReal32 EmitterAngle() const
Definition: AkTypes.h:776
bool operator!=(const AkGraphPointBase &other) const
Definition: AkTypes.h:921
@ AK_EnableBusMeter_3DMeter
Enable computation of data necessary to render a 3D visualization of volume distribution over the sur...
Definition: AkTypes.h:1171
@ AK_InvalidParameter
Something is not within bounds, check the documentation of the function returning this code.
Definition: AkTypes.h:149
@ AK_PluginNotRegistered
Plugin is not registered. Make sure to implement a AK::PluginRegistration class for it and use AK_STA...
Definition: AkTypes.h:188
@ AttenuationCurveID_MaxCount
The maximum number of curve types.
Definition: AkTypes.h:953
AkReal32 Y
Y Position
Definition: AkTypes.h:416
AkWorldTransform ConvertAkTransformToAkWorldTransform(AkTransform in)
Definition: AkTypes.h:700
AkUInt32 AkUniqueID
Unique 32-bit ID
Definition: AkTypes.h:52
void SetPosition(AkReal64 in_x, AkReal64 in_y, AkReal64 in_z)
Set position.
Definition: AkTypes.h:495
AkListenerPosition position
Definition: AkTypes.h:844
Configured audio settings
Definition: AkTypes.h:222
AkGraphPointBase()=default
Ak3DSpatializationMode
3D spatialization mode.
Definition: AkTypes.h:1146
@ AkDeviceState_NotPresent
The audio device is not present because the audio adapter that connects to the endpoint device has be...
Definition: AkTypes.h:232
AkUInt32 AkPluginID
Source or effect plug-in ID
Definition: AkTypes.h:63
AkVector operator+(const AkVector &b) const
Definition: AkTypes.h:363
@ AK_InvalidFloatValue
One parameter has a invalid float value such as NaN, INF or FLT_MAX.
Definition: AkTypes.h:195
AkGameObjectID ListenerID() const
Get listener ID associated with the emitter-listener pair.
Definition: AkTypes.h:814
@ AK_AudioFileHeaderTooLarge
The file header is too large.
Definition: AkTypes.h:139
AkReal32 X
X Position
Definition: AkTypes.h:415
@ AkCurveInterpolation_InvSCurve
Inversed S Curve
Definition: AkTypes.h:859
@ AkCurveInterpolation_Log3
Log3
Definition: AkTypes.h:856
AkUInt16 AkDataTypeID
Data sample type ID
Definition: AkTypes.h:69
@ AK_EnableBusMeter_TruePeak
Enable computation of true peak metering (most CPU and memory intensive).
Definition: AkTypes.h:1167
@ AttenuationCurveID_None
Symbol for "None".
Definition: AkTypes.h:956
@ AkCurveInterpolation_Log1
Log1
Definition: AkTypes.h:858
@ AttenuationCurveID_ObstructionHPF
The obstruction-driven high-pass filter curve.
Definition: AkTypes.h:942
@ AK_UnknownFileError
Rare file error occured, as opposed to AK_FileNotFound or AK_FilePermissionError. This lumps all unre...
Definition: AkTypes.h:204
@ AttenuationCurveID_OcclusionVolume
The occlusion-driven volume curve.
Definition: AkTypes.h:943
AkUInt32 AkAcousticTextureID
Acoustic Texture ID
Definition: AkTypes.h:83
@ AkDeviceState_Unknown
The audio device state is unknown or invalid.
Definition: AkTypes.h:229
@ AK_DeviceNotReady
Specified ID doesn't match a valid hardware device: either the device doesn't exist or is disabled.
Definition: AkTypes.h:169
AkInt16 AkCaptureType
Default value: capture type is short.
Definition: AkTypes.h:1270
@ AK_PlayingIDNotFound
Calling a function with a playing ID that is not known.
Definition: AkTypes.h:194
Spherical coordinates.
Definition: AkTypes.h:739
@ AK_Busy
The system is busy and could not process the request.
Definition: AkTypes.h:177
AkReal32 fDiffraction
Emitter-listener-pair-specific diffraction coefficient
Definition: AkTypes.h:825
#define AKCODECID_BANK_BUS
Bank encoding for bus banks. These banks are contained in the /bus sub-folder.
Definition: AkTypes.h:1025
@ AK_AlreadyConnected
The stream is already connected to another node.
Definition: AkTypes.h:137
@ AK_PathNotFound
This path is not known.
Definition: AkTypes.h:151
AkAttenuationCurveType
Curve types of the Attenuation Editor.
Definition: AkTypes.h:932
static const AkPipelineID AK_INVALID_PIPELINE_ID
Invalid pipeline ID (for profiling)
Definition: AkTypes.h:108
@ AK_InitBankNotLoaded
The Init bank was not loaded yet, the sound engine isn't completely ready yet.
Definition: AkTypes.h:192
AkUInt32 AkCodecID
Codec plug-in ID
Definition: AkTypes.h:64
AkReal32 Obstruction() const
Get the obstruction factor for this emitter-listener pair
Definition: AkTypes.h:786
AkUInt16 AkDataCompID
Data compression format ID
Definition: AkTypes.h:68
@ AK_InvalidState
This method should not be called when the object is in its current state.
Definition: AkTypes.h:209
Positioning information for a sound, with specified subset of its channels.
Definition: AkTypes.h:724
Volume ramp specified by end points "previous" and "next".
Definition: AkTypes.h:886
AkBankTypeEnum
Bank types
Definition: AkTypes.h:1077
@ AK_PluginMediaNotAvailable
Plugin media is not available for effect.
Definition: AkTypes.h:179
AkInt8 AkPriority
Priority
Definition: AkTypes.h:67
AkReal32 Z
Z Position
Definition: AkTypes.h:417
AkGroupType
Game sync group type
Definition: AkTypes.h:214
@ AK_FilePathTooLong
The combination of base path and file name exceeds maximum buffer lengths.
Definition: AkTypes.h:208
AkRamp operator*(const AkRamp &in_rLhs, const AkRamp &in_rRhs)
Definition: AkTypes.h:894
int16_t AkInt16
Signed 16-bit integer
AkReal32 obstruction
ObstructionLevel: [0.0f..1.0f]
Definition: AkTypes.h:719
static const AkUInt32 AK_NUM_JOB_TYPES
Number of possible job types recognized by the Sound Engine
Definition: AkTypes.h:127
WwiseObjectID(AkUniqueID in_ID)
Definition: AkTypes.h:1227
@ AkBusHierarchy_IsMaster
Flag is set to indicate a master bus (may be used in combination with other flags).
Definition: AkTypes.h:1157
@ AkCurveInterpolation_Constant
Constant ( not valid for fading values )
Definition: AkTypes.h:866
AkExternalSourceInfo(void *in_pInMemory, AkUInt32 in_uiMemorySize, AkUInt32 in_iExternalSrcCookie, AkCodecID in_idCodec)
Constructor: specify source by memory.
Definition: AkTypes.h:276
@ AK_InvalidLanguage
The language is invalid (applies to the Low-Level I/O).
Definition: AkTypes.h:147
void SetOrientation(const AkVector &in_orientationFront, const AkVector &in_orientationTop)
Set orientation. Orientation front and top should be orthogonal and normalized.
Definition: AkTypes.h:627
AkRamp(AkReal32 in_fPrev, AkReal32 in_fNext)
Definition: AkTypes.h:888
AkWorldTransform AkSoundPosition
Positioning information for a sound.
Definition: AkTypes.h:710
static const AkMemPoolId AK_INVALID_POOL_ID
Invalid pool ID
Definition: AkTypes.h:99
Polar coordinates.
Definition: AkTypes.h:732
@ AkDeviceState_Unplugged
The audio device is unplugged.
Definition: AkTypes.h:233
AkVector operator-(const AkVector &b) const
Definition: AkTypes.h:374
@ AkBusHierarchy_Secondary
Flag is set to indicate the secondary bus hierarchy.
Definition: AkTypes.h:1156
@ AK_NoDataNeeded
The consumer does not need more.
Definition: AkTypes.h:158
AkOSChar deviceName[AK_MAX_PATH]
The user-friendly name for the device.
Definition: AkTypes.h:240
AkReal32 GetGainForConnectionType(AkConnectionType in_eType) const
Get the emitter-listener-pair-specific gain (due to distance and cone attenuation),...
Definition: AkTypes.h:798
@ AkPluginTypeSink
Sink plug-in: implement custom sound engine end point.
Definition: AkTypes.h:1186
static const AkUInt32 AK_INVALID_OUTPUT_DEVICE_ID
Invalid Device ID
Definition: AkTypes.h:107
@ AK_PartialSuccess
The operation succeeded partially.
Definition: AkTypes.h:135
AkTransform ConvertAkWorldTransformToAkTransform(AkWorldTransform in)
Definition: AkTypes.h:683
@ AK_SteeringPanner
Steering panner.
Definition: AkTypes.h:1115
@ ConnectionType_ReflectionsSend
Connection by a early reflections send.
Definition: AkTypes.h:322
@ AK_ACP_Error
Generic XMA decoder error.
Definition: AkTypes.h:198
AkCurveInterpolation
Curve interpolation types
Definition: AkTypes.h:853
#define AK_CALLBACK(_type, _name)
@ AttenuationCurveID_VolumeAuxUserDef
The distance-driven user-defined auxiliary send curve.
Definition: AkTypes.h:935
static const AkPluginID AK_INVALID_SHARE_SET_ID
Invalid Share Set ID
Definition: AkTypes.h:93
AkPanningRule
Headphone / speakers panning rules
Definition: AkTypes.h:1138
@ AkSetPositionFlags_Emitter
Definition: AkTypes.h:1130
AkUInt32 uNumSamplesPerFrame
Number of samples per audio frame (256, 512, 1024 or 2048).
Definition: AkTypes.h:223
@ AK_CannotAddItselfAsAChild
It is not possible to add itself as its own child.
Definition: AkTypes.h:148
@ AttenuationCurveID_TransmissionVolume
The transmission-driven volume curve.
Definition: AkTypes.h:949
@ AK_InvalidInstanceID
The InstanceID is invalid.
Definition: AkTypes.h:143
@ AK_NotImplemented
This feature is not implemented.
Definition: AkTypes.h:132
double AkReal64
64-bit floating point
AkVector operator*(const AkReal32 f) const
Definition: AkTypes.h:385
IAkGrainCodec *(* AkCreateGrainCodecCallback)()
Registered IAkGrainCodec creation function prototype.
Definition: AkTypes.h:1061
static const AkUniqueID AK_INVALID_UNIQUE_ID
Invalid unique 32-bit ID
Definition: AkTypes.h:95
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:637
AkWorldTransform position
Emitter position.
Definition: AkTypes.h:725
AkUInt32 AkStateID
State ID
Definition: AkTypes.h:53
AkPluginType
Definition: AkTypes.h:1178
@ AkPanningRule_Speakers
Left and right positioned 60 degrees apart (by default - see AK::SoundEngine::GetSpeakerAngles()).
Definition: AkTypes.h:1139
@ AttenuationCurveID_Spread
The distance-driven Spread curve.
Definition: AkTypes.h:938
@ AkCurveInterpolation_Linear
Linear (Default)
Definition: AkTypes.h:860
bool bSpatialized
Listener scaling factor (see AK::SoundEngine::SetListenerScalingFactor()).
Definition: AkTypes.h:846
@ MultiPositionType_MultiSources
Simulate multiple sources in one sound playing, adding volumes. For instance, all the torches on your...
Definition: AkTypes.h:1103
AkReal32 AkPitchValue
Pitch value
Definition: AkTypes.h:58
static const AkPlayingID AK_INVALID_PLAYING_ID
Invalid playing ID
Definition: AkTypes.h:97
@ AK_DataNeeded
The consumer needs more.
Definition: AkTypes.h:157
void SetPosition(const AkVector &in_position)
Set position.
Definition: AkTypes.h:607
AkVector ConvertAkVector64ToAkVector(AkVector64 in)
Definition: AkTypes.h:673
AkReal32 fScalingFactor
Combined scaling factor due to both emitter and listener.
Definition: AkTypes.h:829
@ AkDeviceState_Disabled
The audio device is disabled.
Definition: AkTypes.h:231
#define AKCODECID_BANK_EVENT
Bank encoding for event banks. These banks are contained in the /event sub-folder.
Definition: AkTypes.h:1024
uint64_t AkUInt64
Unsigned 64-bit integer
AkUInt32 AkSwitchStateID
Switch ID
Definition: AkTypes.h:72
AkReal32 fDryMixGain
Emitter-listener-pair-specific gain (due to distance and cone attenuation) for direct connections.
Definition: AkTypes.h:820
AkReal32 fOcclusion
Emitter-listener-pair-specific occlusion factor
Definition: AkTypes.h:823
AkReal64 Y
Y Position
Definition: AkTypes.h:356
@ AkPanningRule_Headphones
Left and right positioned 180 degrees apart.
Definition: AkTypes.h:1140
AkExternalSourceInfo()
Default constructor.
Definition: AkTypes.h:267
AkReal32 fListenerAngle
Angle between position vector and listener orientation.
Definition: AkTypes.h:819
AkUInt16 AkPortNumber
Port number
Definition: AkTypes.h:57
AkFileID idFile
File ID. If not zero, the source will be streaming from disk. This ID can be anything....
Definition: AkTypes.h:264
AkChannelMask uEmitterChannelMask
Channels of the emitter that apply to this ray.
Definition: AkTypes.h:831
AkReal32 fTransmissionLoss
Emitter-listener-pair-specific transmission occlusion.
Definition: AkTypes.h:826
#define AKCODECID_BANK
Bank encoding
Definition: AkTypes.h:1002
@ AK_PathNoVertices
Stuff in vertices before trying to start it
Definition: AkTypes.h:152
AkReal32 theta
Azimuth
Definition: AkTypes.h:734
static const AkArgumentValueID AK_FALLBACK_ARGUMENTVALUE_ID
Fallback argument value ID
Definition: AkTypes.h:105
@ AK_PathNotPaused
Only a paused path can be resumed.
Definition: AkTypes.h:154
AkAudioDeviceState
Definition: AkTypes.h:228
@ AK_SpatializationMode_None
No spatialization
Definition: AkTypes.h:1147
static const AkGameObjectID AK_INVALID_GAME_OBJECT
Invalid game object (may also mean all game objects)
Definition: AkTypes.h:94
AkListener()
Definition: AkTypes.h:840
AkRayID ID() const
Get the emitter-listener pair's ID.
Definition: AkTypes.h:811
@ AkBusHierarchy_Primary
Flag is set to indicate the primary bus hierarchy.
Definition: AkTypes.h:1155
@ AttenuationCurveID_ObstructionLPF
The obstruction-driven low-pass filter curve.
Definition: AkTypes.h:941
@ AttenuationCurveID_TransmissionHPF
The transmission-driven high-pass filter curve.
Definition: AkTypes.h:951
3D 64-bit vector. Intended as storage for world positions of sounds and objects, benefiting from 64-b...
Definition: AkTypes.h:327
@ AkPluginTypeSource
Source plug-in: creates sound by synthesis method (no input, just output).
Definition: AkTypes.h:1181
@ AK_ChildAlreadyHasAParent
The child already has a parent.
Definition: AkTypes.h:146
AkRayID id
ID of this emitter-listener pair, unique for a given emitter.
Definition: AkTypes.h:833
@ AK_UnknownBankID
Trying to load a bank using an ID which is not defined.
Definition: AkTypes.h:163
Public data structures for converted file format.
Definition: AkTypes.h:1248
@ AttenuationCurveID_DiffractionLPF
The diffraction-driven low-pass filter curve.
Definition: AkTypes.h:947
AkUInt32 AkRayID
Unique (per emitter) identifier for an emitter-listener ray.
Definition: AkTypes.h:87
AkUInt16 uAttenuation
Position of this point in samples at the source rate.
Definition: AkTypes.h:1254
@ AK_FilePermissionError
The file access permissions prevent opening a file.
Definition: AkTypes.h:203
@ AK_TooManyConcurrentOperations
When using StdStream, file operations can be blocking or not. When not blocking, operations need to b...
Definition: AkTypes.h:205
@ ConnectionType_UserDefSend
Connection by a user-defined send.
Definition: AkTypes.h:321
@ AK_StreamMgrNotInitialized
The stream manager should have been initialized at this point.
Definition: AkTypes.h:175
Type for a point in an RTPC or Attenuation curve.
Definition: AkTypes.h:904
uint32_t AkUInt32
Unsigned 32-bit integer
AkReal32 fUserDefAuxMixGain
Emitter-listener-pair-specific gain (due to distance and cone attenuation) for user-defined send conn...
Definition: AkTypes.h:822
static const AkFileID AK_INVALID_FILE_ID
Invalid file ID
Definition: AkTypes.h:102
AkInt16 AkPluginParamID
Source or effect plug-in parameter ID
Definition: AkTypes.h:66
static const AkAuxBusID AK_INVALID_AUX_ID
Invalid auxiliary bus ID (or no Aux bus ID)
Definition: AkTypes.h:101
@ AK_ElementAlreadyInList
The item could not be added because it was already in the list.
Definition: AkTypes.h:150
AkSpeakerPanningType
Speaker panning type: type of panning logic when object is not 3D spatialized (i.e....
Definition: AkTypes.h:1112
@ AK_Cancelled
The requested action was cancelled (not an error).
Definition: AkTypes.h:162
~AkEmitterListenerPair()
Destructor.
Definition: AkTypes.h:769
AkGameObjectID listenerID
Game object ID of the listener associated with this send. Use AK_INVALID_GAME_OBJECT as a wildcard to...
Definition: AkTypes.h:877
@ AkPluginTypeNone
Unknown/invalid plug-in type.
Definition: AkTypes.h:1179
AkUInt32 AkAuxBusID
Auxilliary bus ID
Definition: AkTypes.h:65
AkUInt64 AkOutputDeviceID
Audio Output device ID
Definition: AkTypes.h:85
AkCreateBankSourceCallback pBankSrcCreateFunc
Definition: AkTypes.h:1066
AkVector64 operator+(const AkVector64 &b) const
Definition: AkTypes.h:328
@ AK_DuplicateUniqueID
Two Wwise objects share the same ID.
Definition: AkTypes.h:191
@ AttenuationCurveID_ObstructionVolume
The obstruction-driven volume curve.
Definition: AkTypes.h:940
const AkVector & OrientationTop() const
Get orientation top vector.
Definition: AkTypes.h:441
@ AkBankType_User
User-defined bank.
Definition: AkTypes.h:1078
@ AttenuationCurveID_OcclusionLPF
The occlusion-driven low-pass filter curve.
Definition: AkTypes.h:944
@ AK_FormatNotReady
Source format not known yet.
Definition: AkTypes.h:166
3D vector for some operations in 3D space. Typically intended only for localized calculations due to ...
Definition: AkTypes.h:362
@ AK_InsufficientMemory
Memory error.
Definition: AkTypes.h:161
@ AkPluginTypeCodec
Compressor/decompressor plug-in (allows support for custom audio file types).
Definition: AkTypes.h:1180
AkCreateFileSourceCallback pFileSrcCreateFunc
Definition: AkTypes.h:1065
@ AK_3DPositionType_ListenerWithAutomation
3D spatialization is computed from the listener game object position, translated by user-defined auto...
Definition: AkTypes.h:1124
AkBusHierarchyFlags
Bus type bit field.
Definition: AkTypes.h:1154
AkCurveInterpolation Interp
The shape of the interpolation curve between this point and the next.
Definition: AkTypes.h:915
AkChannelMask uInputChannels
Channels to which the above position applies.
Definition: AkTypes.h:726
static const AkReal32 AK_DEFAULT_BANK_THROUGHPUT
Default bank load throughput (1 Mb/ms)
Definition: AkTypes.h:118
AkReal32 AkRtpcValue
Real time parameter control value
Definition: AkTypes.h:74
static const AkJobType AkJobType_SpatialAudio
Job type for Spatial Audio computations
Definition: AkTypes.h:126
AkReal32 fScalingFactor
Listener position (see AK::SoundEngine::SetPosition()).
Definition: AkTypes.h:845
AkReal32 ListenerAngle() const
Definition: AkTypes.h:780
@ AttenuationCurveID_HighPassFilter
The distance-driven high-pass filter (pre send) curve.
Definition: AkTypes.h:937
AkUInt32 uNumSamplesPerSecond
Number of samples per second.
Definition: AkTypes.h:224
Listener information.
Definition: AkTypes.h:839
@ AK_OpenSLError
OpenSL returned an error. Check error log for more details.
Definition: AkTypes.h:187
AkUInt32 AkSwitchGroupID
Switch group ID
Definition: AkTypes.h:71
AkReal32 TransmissionLoss() const
Get the transmission loss factor for this emitter-listener pair
Definition: AkTypes.h:792
AkReal32 fAperture
Emitter-listener-pair-specific aperture
Definition: AkTypes.h:828
@ AK_PathNotRunning
Only a running path can be paused.
Definition: AkTypes.h:153
@ AK_WrongBankVersion
The bank version is not compatible with the current bank reader.
Definition: AkTypes.h:167
AkReal64 Z
Z Position
Definition: AkTypes.h:357
static const AkMemPoolId AK_DEFAULT_POOL_ID
Default pool ID, same as AK_INVALID_POOL_ID
Definition: AkTypes.h:100
int8_t AkInt8
Signed 8-bit integer
@ AK_AlreadyInitialized
Init() was called but that element was already initialized.
Definition: AkTypes.h:201
@ AK_MustBeVirtualized
Sound was Not Allowed to play.
Definition: AkTypes.h:180
static const AkPriority AK_MAX_PRIORITY
Maximal priority value [0,100]
Definition: AkTypes.h:114
@ AK_Deferred
Returned by functions to indicate to the caller the that the operation is done asynchronously....
Definition: AkTypes.h:207
IAkSoftwareCodec *(* AkCreateBankSourceCallback)(void *in_pCtx)
Registered bank source node creation function prototype.
Definition: AkTypes.h:1057
Ak3DPositionType
3D position type: defines what acts as the emitter position for computing spatialization against the ...
Definition: AkTypes.h:1121
static const AkRtpcID AK_INVALID_RTPC_ID
Invalid RTPC ID
Definition: AkTypes.h:96
const AkVector & OrientationFront() const
Get orientation front vector.
Definition: AkTypes.h:435
AkReal32 occlusion
OcclusionLevel: [0.0f..1.0f]
Definition: AkTypes.h:718
AkUInt32 AkBankType
Run time bank type
Definition: AkTypes.h:76
AkConnectionType
Nature of the connection binding an input to a bus.
Definition: AkTypes.h:318
Position and orientation of objects in a "local" space
Definition: AkTypes.h:542
@ AK_SpatializationMode_PositionAndOrientation
Spatialization based on both emitter position and emitter orientation.
Definition: AkTypes.h:1149
AkUInt32 AkJobType
Job type identifier
Definition: AkTypes.h:89
AkUInt32 AkPlayingID
A unique identifier generated whenever a PostEvent is called (or when a Dynamic Sequence is created)....
Definition: AkTypes.h:55
AkCreateGrainCodecCallback pGrainCodecCreateFunc
Definition: AkTypes.h:1068
@ ConnectionType_GameDefSend
Connection by a game-defined send.
Definition: AkTypes.h:320
@ AK_RejectedByFilter
A play request was rejected due to the MIDI filter parameters.
Definition: AkTypes.h:182
AkAuxBusID auxBusID
Auxiliary bus ID.
Definition: AkTypes.h:878
AkReal64 X
X Position
Definition: AkTypes.h:355
@ AkCurveInterpolation_LastFadeCurve
Update this value to reflect last curve available for fades
Definition: AkTypes.h:865
@ AkPluginTypeGlobalExtension
Global Extension plug-in: (e.g. Spatial Audio, Interactive Music)
Definition: AkTypes.h:1187
void Set(AkReal64 in_positionX, AkReal64 in_positionY, AkReal64 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:463
AkUInt32 uiMemorySize
Size of the data pointed by pInMemory
Definition: AkTypes.h:263
AkCreateFileCodecCallback pFileCodecCreateFunc
Definition: AkTypes.h:1067
@ AkBankType_Event
Bank generated for one event.
Definition: AkTypes.h:1079
static const AkChannelMask AK_INVALID_CHANNELMASK
Invalid channel mask
Definition: AkTypes.h:106
@ AkPluginTypeMetadata
Metadata plug-in: applies object-based processing to audio data
Definition: AkTypes.h:1188
AkUInt32 idDevice
Device ID for Wwise. This is the same as what is returned from AK::GetDeviceID and AK::GetDeviceIDFro...
Definition: AkTypes.h:239
AkUInt32 AkTriggerID
Trigger ID
Definition: AkTypes.h:79
@ AK_InvalidBankType
Invalid bank type. The bank type was either supplied through a function call (e.g....
Definition: AkTypes.h:200
Analyzed envelope point.
Definition: AkTypes.h:1252

此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅