1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029 |
- #pragma once
- #include "AkEnvironmentIndex.h"
- #include "AkGameplayTypes.h"
- #include "AkGroupValue.h"
- #include "AkInclude.h"
- #include "AkJobWorkerScheduler.h"
- #include "Wwise/WwiseSharedLanguageId.h"
- #include "Engine/EngineTypes.h"
- #include "Wwise/Stats/AkAudio.h"
- #if WITH_EDITORONLY_DATA
- #include "EditorViewportClient.h"
- #endif
- #define GET_AK_EVENT_NAME(AkEvent, EventName) ((AkEvent) ? ((AkEvent)->GetName()) : (EventName))
- DECLARE_EVENT(FAkAudioDevice, SoundbanksLoaded);
- DECLARE_EVENT(FAkAudioDevice, FOnWwiseProjectModification);
- DECLARE_EVENT_OneParam(FAkAudioDevice, FOnSwitchValueLoaded, UAkGroupValue*);
- DECLARE_DELEGATE_OneParam(FOnSetCurrentAudioCultureCompleted, bool);
- class UAkPortalComponent;
- class AkCallbackInfoPool;
- class AkLegacyFileCustomParamPolicy;
- class CAkDiskPackage;
- class FAkComponentCallbackManager;
- class FWwiseIOHook;
- class UAkComponent;
- class UAkGameObject;
- class UAkGroupValue;
- class UAkLateReverbComponent;
- class UAkRoomComponent;
- class UAkStateValue;
- class UAkSwitchValue;
- class UAkAudioType;
- class UAkAudioEvent;
- class UAkEffectShareSet;
- class AkXMLErrorMessageTranslator;
- class AkWAAPIErrorMessageTranslator;
- class AkUnrealErrorTranslator;
- typedef TSet<UAkComponent*> UAkComponentSet;
- #define DUMMY_GAMEOBJ ((AkGameObjectID)0x2)
- #define SOUNDATLOCATION_GAMEOBJ ((AkGameObjectID)0x3)
- template<typename ValueType, bool bInAllowDuplicateKeys>
- struct AkGameObjectIdKeyFuncs : TDefaultMapKeyFuncs<AkGameObjectID, ValueType, bInAllowDuplicateKeys>
- {
- static FORCEINLINE uint32 GetKeyHash(AkGameObjectID Key)
- {
- if (sizeof(Key) <= 4)
- {
- return (uint32)Key;
- }
- else
- {
- return GetTypeHash((uint64)Key);
- }
- }
- };
- struct AKAUDIO_API FAkAudioDeviceDelegates
- {
- DECLARE_MULTICAST_DELEGATE_TwoParams(FOnAkGlobalCallback, AK::IAkGlobalPluginContext*, AkGlobalCallbackLocation);
- };
-
- class AKAUDIO_API FAkAudioDevice final
- {
- public:
- UE_NONCOPYABLE(FAkAudioDevice);
- FAkAudioDevice() {}
-
- bool Init( void );
-
- bool Update( float DeltaTime );
-
-
- void Teardown();
-
- void StopAllSounds( bool bShouldStopUISounds = false );
-
- void StopAllSounds(EAkAudioContext AudioContext);
-
- void Flush(UWorld* WorldToFlush);
-
- bool WorldSpatialAudioVolumesUpdated(UWorld* World);
-
- AK_DEPRECATED(2022.1.0, "This method is now deprecated, please use ClearSoundBanksAndMedia.")
- AKRESULT ClearBanks();
-
- AKRESULT ClearSoundBanksAndMedia();
-
- AKRESULT LoadBank(
- const FString& in_BankName,
- AkBankID & out_bankID
- );
-
- AKRESULT LoadBank(
- const FString& in_BankName,
- AkBankCallbackFunc in_pfnBankCallback,
- void * in_pCookie,
- AkBankID & out_bankID
- );
-
-
- AKRESULT LoadBank(
- const FString& in_BankName,
- FWaitEndBankAction* LoadBankLatentAction
- );
-
- AKRESULT LoadBankFromMemory(
- const void* MemoryPtr,
- uint32 MemorySize,
- AkBankType BankType,
- AkBankID& OutBankID
- );
-
- AKRESULT LoadBankAsync(
- const FString& in_BankName,
- const FOnAkBankCallback& BankLoadedCallback,
- AkBankID & out_bankID
- );
-
- AKRESULT UnloadBank(
- const FString& in_BankName
- );
-
- AKRESULT UnloadBank(
- const FString& in_BankName,
- AkBankCallbackFunc in_pfnBankCallback,
- void * in_pCookie
- );
-
- AKRESULT UnloadBank(
- const FString& in_BankName,
- FWaitEndBankAction* UnloadBankLatentAction
- );
-
- AKRESULT UnloadBankFromMemory(
- AkBankID in_bankID,
- const void* in_memoryPtr
- );
-
- AKRESULT UnloadBankFromMemoryAsync(
- AkBankID in_bankID,
- const void* in_memoryPtr,
- AkBankCallbackFunc in_pfnBankCallback,
- void* in_pCookie,
- uint32 BankType
- );
-
- AKRESULT UnloadBankAsync(
- const FString& in_BankName,
- const FOnAkBankCallback& BankUnloadedCallback
- );
-
-
- static AkUInt32 GetShortIDFromString(const FString& InString);
-
- static AkUInt32 GetShortID(UAkAudioType* AudioAsset, const FString& BackupName);
-
- AKRESULT SetMedia(AkSourceSettings* in_pSourceSettings, uint32 in_uNumSourceSettings);
-
- AKRESULT TryUnsetMedia(AkSourceSettings* in_pSourceSettings, uint32 in_uNumSourceSettings, AKRESULT* out_pUnsetResults = nullptr);
-
-
- AKRESULT UnsetMedia(AkSourceSettings* in_pSourceSettings, uint32 in_uNumSourceSettings);
-
- FString GetCurrentAudioCulture() const;
-
- FString GetDefaultLanguage();
-
- TArray<FString> GetAvailableAudioCultures() const;
-
- FWwiseLanguageCookedData GetLanguageCookedDataFromString(const FString& WwiseLanguage);
-
- void SetCurrentAudioCulture(const FString& AudioCulture);
-
- void SetCurrentAudioCultureAsync(const FString& AudioCulture, FSetCurrentAudioCultureAction* LatentAction);
-
-
- void SetCurrentAudioCultureAsync(const FString& AudioCulture, const FOnSetCurrentAudioCultureCompleted& CompletedCallback);
-
- AK_DEPRECATED(2022.1, "Use UAkAudioEvent::PostOnActor")
- AkPlayingID PostAkAudioEventOnActor(
- class UAkAudioEvent * AkEvent,
- AActor * Actor,
- AkUInt32 Flags = 0,
- AkCallbackFunc Callback = NULL,
- void * Cookie = NULL,
- bool bStopWhenOwnerDestroyed = false,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
-
- AkPlayingID PostAkAudioEventOnComponent(
- UAkAudioEvent* AkEvent,
- UAkComponent* Component,
- AkUInt32 Flags = 0,
- AkCallbackFunc Callback = NULL,
- void* Cookie = NULL,
- bool bStopWhenOwnerDestroyed = false,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnActor(
- const AkUInt32 EventShortID,
- AActor * Actor,
- AkUInt32 Flags = 0,
- AkCallbackFunc Callback = NULL,
- void * Cookie = NULL,
- bool bStopWhenOwnerDestroyed = false,
- const TArray<AkExternalSourceInfo> ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnActor(
- const AkUInt32 EventShortID,
- AActor * Actor,
- const FOnAkPostEventCallback& PostEventCallback,
- AkUInt32 Flags = 0,
- bool bStopWhenOwnerDestroyed = false,
- const TArray<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnGameObjectID(
- const AkUInt32 EventShortID,
- AkGameObjectID GameObject,
- AkUInt32 Flags ,
- AkCallbackFunc Callback ,
- void* Cookie,
-
- const TArray<AkExternalSourceInfo>& ExternalSources,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnActorWithLatentAction(
- const AkUInt32 EventShortID,
- AActor * Actor,
- bool bStopWhenOwnerDestroyed,
- FWaitEndOfEventAction* LatentAction,
- const TArray<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnComponentWithLatentAction(
- const AkUInt32 EventShortID,
- UAkComponent* AkComponent,
- FWaitEndOfEventAction* LatentAction,
- const TArray<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnAkComponent(
- const AkUInt32 EventShortID,
- UAkComponent* Component,
- AkUInt32 Flags = 0,
- AkCallbackFunc Callback = NULL,
- void * Cookie = NULL,
- const TArray<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventOnAkGameObject(
- const AkUInt32 EventShortID,
- UAkGameObject* AkGameObject,
- const FOnAkPostEventCallback& PostEventCallback,
- AkUInt32 Flags = 0,
- const TArray<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AK_DEPRECATED(2022.1, "Use UAkAudioEvent::PostAtLocation")
- AkPlayingID PostAkAudioEventAtLocation(
- UAkAudioEvent* Event,
- FVector Location,
- FRotator Orientation,
- UWorld* World,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- AkPlayingID PostEventAtLocation(
- const FString& EventName,
- const AkUInt32 EventShortID,
- FVector Location,
- FRotator Orientation,
- UWorld* World,
- const TArray<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>(),
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- TFuture<AkPlayingID> PostAkAudioEventAtLocationAsync(
- UAkAudioEvent* Event,
- FVector Location,
- FRotator Orientation,
- UWorld* World,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- TFuture<AkPlayingID> PostAkAudioEventOnActorAsync(
- class UAkAudioEvent* AudioEvent,
- AActor* Actor,
- const FOnAkPostEventCallback& PostEventCallback,
- AkUInt32 CallbackFlags = 0,
- bool bStopWhenOwnerDestroyed = false,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- TFuture<AkPlayingID> PostAkAudioEventOnAkGameObjectAsync(
- class UAkAudioEvent* AudioEvent,
- UAkGameObject* GameObject,
- const FOnAkPostEventCallback& PostEventCallback,
- AkUInt32 CallbackFlags = 0,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- TFuture<AkPlayingID> PostAkAudioEventWithLatentActionOnActorAsync(
- class UAkAudioEvent* AudioEvent,
- AActor* Actor,
- bool bStopWhenOwnerDestroyed,
- FWaitEndOfEventAction* LatentAction,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- TFuture<AkPlayingID> PostAkAudioEventWithLatentActionOnAkComponentAsync(
- class UAkAudioEvent* AudioEvent,
- UAkComponent* AkComponent,
- bool bStopWhenOwnerDestroyed,
- FWaitEndOfEventAction* LatentAction,
- EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio
- );
-
- class UAkComponent* SpawnAkComponentAtLocation( class UAkAudioEvent* AkEvent, FVector Location, FRotator Orientation, bool AutoPost, const FString& EventName, bool AutoDestroy, class UWorld* in_World );
-
- AKRESULT ExecuteActionOnEvent(
- const AkUInt32 EventShortID,
- AkActionOnEventType ActionType,
- AActor* Actor,
- AkTimeMs TransitionDuration = 0,
- EAkCurveInterpolation FadeCurve = EAkCurveInterpolation::Linear,
- AkPlayingID PlayingID = AK_INVALID_PLAYING_ID
- );
-
- void ExecuteActionOnPlayingID(
- AkActionOnEventType in_ActionType,
- AkPlayingID in_PlayingID,
- AkTimeMs in_uTransitionDuration = 0,
- EAkCurveInterpolation in_eFadeCuve = EAkCurveInterpolation::Linear
- );
-
- AKRESULT SeekOnEvent(
- const AkUInt32 EventShortID,
- AActor* Actor,
- AkReal32 Percent,
- bool bSeekToNearestMarker = false,
- AkPlayingID PlayingID = AK_INVALID_PLAYING_ID
- );
-
- AKRESULT SeekOnEvent(
- const AkUInt32 EventShortID,
- UAkComponent* Component,
- AkReal32 Percent,
- bool bSeekToNearestMarker = false,
- AkPlayingID PlayingID = AK_INVALID_PLAYING_ID
- );
-
- AKRESULT PostTrigger(
- const TCHAR * in_pszTrigger,
- AActor * in_pActor
- );
-
- AKRESULT PostTrigger(
- class UAkTrigger const* in_TriggerValue,
- AActor * in_pActor
- );
-
- AKRESULT SetRTPCValue(
- const TCHAR * in_pszRtpcName,
- AkRtpcValue in_value,
- int32 in_interpolationTimeMs,
- AActor * in_pActor
- );
-
- AKRESULT SetRTPCValue(
- AkRtpcID in_Rtpc,
- AkRtpcValue in_value,
- int32 in_interpolationTimeMs,
- AActor * in_pActor
- );
-
- AKRESULT SetRTPCValue(
- class UAkRtpc const* in_RtpcValue,
- AkRtpcValue in_value,
- int32 in_interpolationTimeMs,
- AActor * in_pActor
- );
-
- AKRESULT SetRTPCValueByPlayingID(
- AkRtpcID in_Rtpc,
- AkRtpcValue in_value,
- AkPlayingID in_playingID,
- int32 in_interpolationTimeMs
- );
-
- AKRESULT GetRTPCValue(
- const TCHAR * in_pszRtpcName,
- AkGameObjectID in_gameObjectID,
- AkPlayingID in_playingID,
- AkRtpcValue& out_rValue,
- AK::SoundEngine::Query::RTPCValue_type& io_rValueType
- );
-
- AKRESULT GetRTPCValue(
- AkRtpcID in_Rtpc,
- AkGameObjectID in_gameObjectID,
- AkPlayingID in_playingID,
- AkRtpcValue& out_rValue,
- AK::SoundEngine::Query::RTPCValue_type& io_rValueType
- );
-
- AKRESULT GetRTPCValue(
- class UAkRtpc const* in_RtpcValue,
- AkGameObjectID in_gameObjectID,
- AkPlayingID in_playingID,
- AkRtpcValue& out_rValue,
- AK::SoundEngine::Query::RTPCValue_type& io_rValueType
- );
-
-
-
-
-
-
-
-
-
- AKRESULT ResetRTPCValue(
- const UAkRtpc* in_RtpcValue,
- AkGameObjectID in_gameObjectID,
- int32 in_interpolationTimeMs
- );
-
-
-
-
-
-
-
-
-
- AKRESULT ResetRTPCValue(
- AkRtpcID in_rtpcID,
- AkGameObjectID in_gameObjectID,
- int32 in_interpolationTimeMs
- );
-
-
-
-
-
-
-
-
-
- AKRESULT ResetRTPCValue(
- const TCHAR * in_pszRtpcName,
- AkGameObjectID in_gameObjectID,
- int32 in_interpolationTimeMs
- );
-
- AKRESULT SetState(
- const TCHAR* in_pszStateGroup,
- const TCHAR* in_pszState
- );
-
- AKRESULT SetState(
- AkStateGroupID in_StateGroup,
- AkStateID in_State
- );
-
- AKRESULT SetState(
- const UAkStateValue* in_stateValue
- );
-
-
- AKRESULT SetSwitch(
- const TCHAR * in_pszSwitchGroup,
- const TCHAR * in_pszSwitchState,
- AActor * in_pActor
- );
-
- AKRESULT SetSwitch(
- AkSwitchGroupID in_SwitchGroup,
- AkSwitchStateID in_SwitchState,
- AActor* in_pActor
- );
-
-
- AKRESULT SetSwitch(
- const UAkSwitchValue* in_switchValue,
- AActor * in_pActor
- );
-
- AKRESULT SetMultiplePositions(
- UAkComponent* in_pGameObjectAkComponent,
- TArray<FTransform> in_aPositions,
- AkMultiPositionType in_eMultiPositionType = AkMultiPositionType::MultiDirections
- );
-
- AKRESULT SetMultiplePositions(
- UAkComponent* in_pGameObjectAkComponent,
- const TArray<AkChannelConfiguration>& in_aChannelConfigurations,
- const TArray<FTransform>& in_aPositions,
- AkMultiPositionType in_eMultiPositionType = AkMultiPositionType::MultiDirections
- );
-
- AKRESULT SetMultiplePositions(
- UAkComponent* in_pGameObjectAkComponent,
- const TArray<FAkChannelMask>& in_channelMasks,
- const TArray<FTransform>& in_aPositions,
- AkMultiPositionType in_eMultiPositionType = AkMultiPositionType::MultiDirections
- );
-
- AKRESULT SetMultiplePositions(
- AkGameObjectID in_GameObjectID,
- const AkSoundPosition * in_pPositions,
- AkUInt16 in_NumPositions,
- AK::SoundEngine::MultiPositionType in_eMultiPositionType = AK::SoundEngine::MultiPositionType_MultiDirections
- );
-
- AKRESULT SetMultiplePositions(
- AkGameObjectID in_GameObjectID,
- const AkChannelEmitter * in_pPositions,
- AkUInt16 in_NumPositions,
- AK::SoundEngine::MultiPositionType in_eMultiPositionType = AK::SoundEngine::MultiPositionType_MultiDirections
- );
-
- AKRESULT SetAuxSends(
- const UAkComponent* in_akComponent,
- TArray<AkAuxSendValue>& in_AuxSendValues
- );
-
- AKRESULT SetInSpatialAudioRoom(
- const AkGameObjectID in_GameObjId,
- AkRoomID in_RoomID
- );
-
- AKRESULT SetBusConfig(
- const FString& in_BusName,
- AkChannelConfig in_Config
- );
-
- AKRESULT SetPanningRule(
- AkPanningRule in_ePanningRule
- );
-
- AkOutputDeviceID GetOutputID(
- const FString& in_szShareSet,
- AkUInt32 in_idDevice = 0
- );
-
- AKRESULT ReplaceMainOutput(const AkOutputSettings& MainOutputSettings);
-
- AKRESULT GetSpeakerAngles(
- TArray<AkReal32>& io_pfSpeakerAngles,
- AkReal32& out_fHeightAngle,
- AkOutputDeviceID in_idOutput = 0
- );
-
- AKRESULT SetSpeakerAngles(
- const TArray<AkReal32>& in_pfSpeakerAngles,
- AkReal32 in_fHeightAngle,
- AkOutputDeviceID in_idOutput = 0
- );
-
- AKRESULT SetGameObjectOutputBusVolume(
- const UAkComponent* in_pEmitter,
- const UAkComponent* in_pListener,
- float in_fControlValue
- );
-
- FDelegateHandle RegisterGlobalCallback(FAkAudioDeviceDelegates::FOnAkGlobalCallback::FDelegate Callback, AkGlobalCallbackLocation Location);
-
- void UnregisterGlobalCallback(FDelegateHandle Handle, AkGlobalCallbackLocation Location);
-
- AKRESULT RegisterOutputDeviceMeteringCallback(AkOutputDeviceID OutputID,
- AkOutputDeviceMeteringCallbackFunc Callback,
- AkMeteringFlags MeteringFlags,
- void* Cookie);
-
- AKRESULT UnregisterOutputDeviceMeteringCallback(AkOutputDeviceID OutputID);
-
- static FAkAudioDevice* Get();
-
- static bool IsInitialized() { return m_bSoundEngineInitialized; }
-
- AkUInt32 GetSampleRate();
-
- AKRESULT SetOfflineRendering(bool bEnable);
-
- AKRESULT SetOfflineRenderingFrameTime(AkReal32 FrameTimeInSeconds);
-
- AKRESULT RegisterCaptureCallback(AkCaptureCallbackFunc Callback, AkOutputDeviceID OutputId = AK_INVALID_OUTPUT_DEVICE_ID, void* Cookie = nullptr);
-
- AKRESULT UnregisterCaptureCallback(AkCaptureCallbackFunc Callback, AkOutputDeviceID OutputId = AK_INVALID_OUTPUT_DEVICE_ID, void* Cookie = nullptr);
-
- void StopGameObject(UAkComponent * in_pComponent);
-
- void StopPlayingID( AkPlayingID in_playingID,
- AkTimeMs in_uTransitionDuration = 0,
- AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear);
-
- void RegisterComponent(UAkComponent * in_pComponent);
-
- void RegisterComponent(AkGameObjectID GameObjectID);
-
- void UnregisterComponent(UAkComponent * in_pComponent);
-
- void UnregisterComponent(AkGameObjectID GameObjectID);
-
-
- AKRESULT SetGeometry(AkGeometrySetID GeometrySetID, const AkGeometryParams& Params);
-
- AKRESULT SetGeometryInstance(AkGeometryInstanceID GeometryInstanceID, const AkGeometryInstanceParams& Params);
-
- AKRESULT RemoveGeometrySet(AkGeometrySetID GeometrySetID);
-
- AKRESULT RemoveGeometryInstance(AkGeometryInstanceID GeometryInstanceID);
-
- AKRESULT SetEarlyReflectionsAuxBus(UAkComponent* in_pComponent, const AkUInt32 AuxBusID);
-
- AKRESULT SetEarlyReflectionsVolume(UAkComponent* in_pComponent, float in_fSendVolume);
-
- AKRESULT SetReflectionsOrder(int Order, bool RefreshPaths);
-
- AKRESULT SetObjectObstructionAndOcclusion(AkGameObjectID in_Object, AkGameObjectID in_listener, AkReal32 Obstruction, AkReal32 Occlusion);
-
- AKRESULT SetMultipleObstructionAndOcclusion(AkGameObjectID in_Object, AkGameObjectID in_listener, AkObstructionOcclusionValues* ObstructionAndOcclusionValues, AkUInt32 in_uNumObstructionAndOcclusion);
-
- AKRESULT SetPortalObstructionAndOcclusion(UAkPortalComponent* in_pPortal, float in_fObstructionValue, float in_fOcclusionValue);
-
- AKRESULT SetGameObjectToPortalObstruction(UAkComponent* in_pComponent, UAkPortalComponent* in_pPortal, float in_fObstructionValue);
-
- AKRESULT SetPortalToPortalObstruction(UAkPortalComponent* in_pPortal0, UAkPortalComponent* in_pPortal1, float in_fObstructionValue);
-
- AKRESULT SetOutputDeviceEffect(AkOutputDeviceID InDeviceID, AkUInt32 InFXIndex, AkUniqueID InFXShareSetID);
-
- AKRESULT SetBusEffect(const FString& InBusName, AkUInt32 InFXIndex, AkUniqueID InFXShareSetID);
-
- AKRESULT SetBusEffect(AkUniqueID InBusID, AkUInt32 InFXIndex, AkUniqueID InFXShareSetID);
-
- AKRESULT SetActorMixerEffect(AkUniqueID InAudioNodeID, AkUInt32 InFXIndex, AkUniqueID InShareSetID);
- AKRESULT SetActorMixerEffect(const FString& InBusName, AkUInt32 InFXIndex, AkUniqueID InFXShareSetID);
-
- static class UAkComponent* GetAkComponent(
- class USceneComponent* AttachToComponent, FName AttachPointName, const FVector * Location, EAttachLocation::Type LocationType);
- static class UAkComponent* GetAkComponent(
- class USceneComponent* AttachToComponent, FName AttachPointName, const FVector * Location, EAttachLocation::Type LocationType, bool& ComponentCreated);
-
- void CancelEventCallbackCookie(void* in_cookie);
- void CancelEventCallbackDelegate(const FOnAkPostEventCallback& in_Delegate);
-
- AKRESULT SetAttenuationScalingFactor(AActor* Actor, float ScalingFactor);
-
- AKRESULT SetAttenuationScalingFactor(UAkComponent* AkComponent, float ScalingFactor);
-
- AKRESULT SetDistanceProbe(UAkComponent* Listener, UAkComponent* DistanceProbe);
-
- void StartOutputCapture(const FString& Filename);
-
- void AddOutputCaptureMarker(const FString& MarkerText);
-
- void StopOutputCapture();
-
- void StartProfilerCapture(const FString& Filename);
-
- void StopProfilerCapture();
-
- AKRESULT RegisterPluginDLL(const FString& in_DllName, const FString& in_DllPath);
-
- FString GetBasePath();
-
- void Suspend(bool in_bRenderAnyway = false);
-
- void WakeupFromSuspend();
-
- FOnWwiseProjectModification OnWwiseProjectModification;
- static inline void FVectorToAKVector( const FVector & in_vect, AkVector & out_vect )
- {
- #if UE_5_0_OR_LATER
- checkf(in_vect.X <= FLT_MAX && in_vect.Y <= FLT_MAX && in_vect.Z <= FLT_MAX, TEXT("FVectorToAKVector: Data truncation when converting from FVector to AkVector."));
- #endif
- out_vect.X = in_vect.X;
- out_vect.Y = in_vect.Y;
- out_vect.Z = in_vect.Z;
- }
- static inline AkVector FVectorToAKVector(const FVector& in_vect)
- {
- #if UE_5_0_OR_LATER
- checkf(in_vect.X <= FLT_MAX && in_vect.Y <= FLT_MAX && in_vect.Z <= FLT_MAX, TEXT("FVectorToAKVector: Data truncation when converting from FVector to AkVector."));
- #endif
- return AkVector{ (float)in_vect.X, (float)in_vect.Y, (float)in_vect.Z };
- }
- static inline void FVectorToAKVector64( const FVector & in_vect, AkVector64 & out_vect )
- {
- out_vect.X = in_vect.X;
- out_vect.Y = in_vect.Y;
- out_vect.Z = in_vect.Z;
- }
-
- static inline AkVector64 FVectorToAKVector64(const FVector& in_vect)
- {
- return AkVector64{ in_vect.X, in_vect.Y, in_vect.Z };
- }
- static inline AkExtent FVectorToAkExtent(const FVector& in_vect)
- {
- #if UE_5_0_OR_LATER
- checkf(in_vect.X <= FLT_MAX && in_vect.Y <= FLT_MAX && in_vect.Z <= FLT_MAX, TEXT("FVectorToAkExtent: Data truncation when converting from FVector to AkExtent."));
- #endif
-
- return AkExtent{ (float)in_vect.Y, (float)in_vect.Z, (float)in_vect.X };
- }
- static inline void FVectorsToAKWorldTransform(const FVector& in_Position, const FVector& in_Front, const FVector& in_Up, AkWorldTransform& out_AkTransform)
- {
-
- out_AkTransform.Set(FVectorToAKVector64(in_Position), FVectorToAKVector(in_Front), FVectorToAKVector(in_Up));
- }
- static inline void AKVectorToFVector(const AkVector & in_vect, FVector & out_vect)
- {
- out_vect.X = in_vect.X;
- out_vect.Y = in_vect.Y;
- out_vect.Z = in_vect.Z;
- }
- static inline FVector AKVectorToFVector(const AkVector& in_vect)
- {
- return FVector(in_vect.X, in_vect.Y, in_vect.Z);
- }
-
- static inline void AKVector64ToFVector(const AkVector64 & in_vect, FVector & out_vect)
- {
- out_vect.X = (float)in_vect.X;
- out_vect.Y = (float)in_vect.Y;
- out_vect.Z = (float)in_vect.Z;
- }
-
- static inline FVector AKVector64ToFVector(const AkVector64& in_vect)
- {
- return FVector((float)in_vect.X, (float)in_vect.Y, (float)in_vect.Z);
- }
- FAkJobWorkerScheduler* GetAkJobWorkerScheduler() { return &AkJobWorkerScheduler; }
- uint8 GetMaxAuxBus() const { return MaxAuxBus; }
- AkCallbackInfoPool* GetAkCallbackInfoPool()
- {
- return CallbackInfoPool;
- }
-
- #if WITH_EDITOR
- void SetMaxAuxBus(uint8 ValToSet) { MaxAuxBus = ValToSet; }
- #endif
- static const int32 FIND_COMPONENTS_DEPTH_INFINITE = -1;
-
- TArray<class UAkLateReverbComponent*> FindLateReverbComponentsAtLocation(const FVector& Loc, const UWorld* in_World);
-
- void IndexLateReverb(class UAkLateReverbComponent* ComponentToAdd);
-
- void UnindexLateReverb(class UAkLateReverbComponent* ComponentToRemove);
-
- void ReindexLateReverb(class UAkLateReverbComponent* ComponentToAdd);
-
- bool WorldHasActiveRooms(UWorld* World);
-
- TArray<class UAkRoomComponent*> FindRoomComponentsAtLocation(const FVector& Loc, const UWorld* World);
-
- bool UsingSpatialAudioRooms(const UWorld* World);
-
- void GetAuxSendValuesAtLocation(FVector Loc, TArray<AkAuxSendValue>& AkAuxSendValues, const UWorld* in_World);
-
- void UpdateAllSpatialAudioPortals(UWorld* InWorld);
-
-
- void PortalsNeedRoomUpdate(UWorld* World) { WorldsInNeedOfPortalRoomsUpdate.Add(World); }
-
- void SetSpatialAudioPortal(UAkPortalComponent* in_Portal);
-
-
- void RemoveSpatialAudioPortal(UAkPortalComponent* in_Portal);
-
- void OnActorSpawned(AActor* SpawnedActor);
- UAkComponentSet& GetDefaultListeners() { return m_defaultListeners; }
- UAkComponentSet& GetDefaultEmitters() { return m_defaultEmitters; }
- void SetListeners(UAkComponent* in_pEmitter, const TArray<UAkComponent*>& in_listenerSet);
- void AddDefaultListener(UAkComponent* in_pListener);
- void RemoveDefaultListener(UAkComponent* in_pListener);
- void UpdateDefaultActiveListeners();
- #if WITH_EDITORONLY_DATA
- FTransform GetEditorListenerPosition(int32 ViewIndex) const;
- #endif
-
- bool SetSpatialAudioListener(UAkComponent* in_pListener);
-
-
- UAkComponent* GetSpatialAudioListener() const;
- AKRESULT SetPosition(UAkComponent* in_akComponent, const AkSoundPosition& in_SoundPosition);
-
- void IndexRoom(class UAkRoomComponent* ComponentToAdd);
-
- void UnindexRoom(class UAkRoomComponent* ComponentToRemove);
-
- void ReindexRoom(class UAkRoomComponent* ComponentToAdd);
- AKRESULT AddRoom(UAkRoomComponent* in_pRoom, const AkRoomParams& in_RoomParams);
- AKRESULT UpdateRoom(UAkRoomComponent* in_pRoom, const AkRoomParams& in_RoomParams);
- AKRESULT RemoveRoom(UAkRoomComponent* in_pRoom);
- AKRESULT SetGameObjectRadius(UAkComponent* in_akComponent, float in_outerRadius, float in_innerRadius);
- AKRESULT SetImageSource(class AAkSpotReflector* in_pSpotReflector, const AkImageSourceSettings& in_ImageSourceInfo, AkUniqueID in_AuxBusID, UAkComponent* in_AkComponent);
- AKRESULT RemoveImageSource(class AAkSpotReflector* in_pSpotReflector, AkUniqueID in_AuxBusID, UAkComponent* in_AkComponent);
- AKRESULT ClearImageSources(AkUniqueID in_AuxBusID = AK_INVALID_AUX_ID, UAkComponent* in_AkComponent = NULL);
- static void GetChannelConfig(AkChannelConfiguration ChannelConfiguration, AkChannelConfig& config);
- static void GetChannelConfig(FAkChannelMask SpeakerConfiguration, AkChannelConfig& config);
- FAkEnvironmentIndex& GetRoomIndex() { return RoomIndex; }
- struct SetCurrentAudioCultureAsyncTask
- {
- enum CompletionType
- {
- LatentAction,
- Callback
- };
- FWwiseLanguageCookedData Language;
- FThreadSafeBool IsDone = false;
- FThreadSafeBool Succeeded = false;
- SetCurrentAudioCultureAsyncTask(FWwiseLanguageCookedData NewLanguage, FSetCurrentAudioCultureAction* LatentAction);
- SetCurrentAudioCultureAsyncTask(FWwiseLanguageCookedData NewLanguage, const FOnSetCurrentAudioCultureCompleted& CompletedCallback);
- bool Start();
- void Update();
- private:
- TSharedPtr<FPendingLatentActionValidityToken, ESPMode::ThreadSafe> LatentActionValidityToken;
- CompletionType CompletionActionType;
- FSetCurrentAudioCultureAction* SetAudioCultureLatentAction;
- FOnSetCurrentAudioCultureCompleted SetAudioCultureCompletedCallback;
- };
- void AddPlayingID(uint32 EventID, uint32 PlayingID, EAkAudioContext AudioContext);
- bool IsPlayingIDActive(uint32 EventID, uint32 PlayingID);
- bool IsEventIDActive(uint32 EventID);
- void RemovePlayingID(uint32 EventID, uint32 PlayingID);
- void StopEventID(uint32 EventID);
- FOnSwitchValueLoaded& GetOnSwitchValueLoaded(uint32 SwitchID);
- void BroadcastOnSwitchValueLoaded(UAkGroupValue* GroupValue);
- void SetLocalOutput();
- FAkComponentCallbackManager* GetCallbackManager() { return CallbackManager; }
- AKRESULT RegisterGameObject(AkGameObjectID GameObjectID, const FString& Name);
- static void LoadAudioObjectsAfterInitialization(TWeakObjectPtr<UAkAudioType>&& InAudioType);
- void LoadDelayedObjects();
- private:
- bool EnsureInitialized();
-
-
- static bool ShouldNotifySoundEngine(EWorldType::Type WorldType);
- void* AllocatePermanentMemory( int32 Size, bool& AllocatedInPool );
-
- AKRESULT GetGameObjectID(AActor * in_pActor, AkGameObjectID& io_GameObject );
- template<typename FCreateCallbackPackage>
- AkPlayingID PostEventWithCallbackPackageOnGameObjectId(
- const AkUInt32 EventShortID,
- const AkGameObjectID GameObjectID,
- const TArray<AkExternalSourceInfo>& ExternalSources,
- FCreateCallbackPackage CreateCallbackPackage,
- EAkAudioContext AudioContext
- );
- template<typename FCreateCallbackPackage>
- AkPlayingID PostEventWithCallbackPackageOnAkGameObject(
- const AkUInt32 EventShortID,
- UAkGameObject* GameObject,
- const TArray<AkExternalSourceInfo>& ExternalSources,
- FCreateCallbackPackage CreateCallbackPackage,
- EAkAudioContext AudioContext
- );
- template<typename ChannelConfig>
- AKRESULT SetMultiplePositions(
- UAkComponent* in_pGameObjectAkComponent,
- const TArray<ChannelConfig>& in_aChannelConfigurations,
- const TArray<FTransform>& in_aPositions,
- AkMultiPositionType in_eMultiPositionType
- );
-
- AKRESULT GetGameObjectID(AActor * in_pActor, AkGameObjectID& io_GameObject, bool in_bStopWhenOwnerDestroyed );
-
- void UpdateRoomsForPortals();
- #if WITH_EDITORONLY_DATA
- UAkComponent* CreateListener(UWorld* World, FEditorViewportClient* ViewportClient = nullptr);
- TArray<FTransform> ListenerTransforms;
- UAkComponent* EditorListener = nullptr;
-
- void EndPIE(const bool bIsSimulating);
- void BeginPIE(const bool bIsSimulating);
- void PausePIE(const bool bIsSimulating);
- void ResumePie(const bool bIsSimulating);
- void OnSwitchBeginPIEAndSIE(const bool bIsSimulating);
- #endif
-
- TMap<UWorld*, bool> WorldVolumesUpdatedMap;
- void SAComponentAddedRemoved(UWorld* World);
-
- FAkEnvironmentIndex LateReverbIndex;
-
- FAkEnvironmentIndex RoomIndex;
-
- TMap<UWorld*, TArray<class UAkPortalComponent*>> WorldPortalsMap;
- void CleanupComponentMapsForWorld(UWorld* World);
- bool FindWwiseLanguage(const FString& NewAudioCulture, FString& FoundWwiseLanguage);
- void UpdateSetCurrentAudioCultureAsyncTasks();
- static bool m_bSoundEngineInitialized;
- UAkComponentSet m_defaultListeners;
- UAkComponentSet m_defaultEmitters;
- UAkComponent* m_SpatialAudioListener;
- bool m_isSuspended = false;
- uint8 MaxAuxBus;
- FAkComponentCallbackManager* CallbackManager;
- AkCallbackInfoPool* CallbackInfoPool;
- FAkJobWorkerScheduler AkJobWorkerScheduler;
- FWwiseIOHook* IOHook = nullptr;
- static bool m_EngineExiting;
-
- FDelegateHandle ProjectLoadedHandle;
- FDelegateHandle ConnectionLostHandle;
- FDelegateHandle ClientBeginDestroyHandle;
- struct FWaapiSubscriptionIds
- {
- uint64 Renamed = 0;
- uint64 PreDeleted = 0;
- uint64 ChildRemoved = 0;
- uint64 ChildAdded = 0;
- uint64 Created = 0;
- } WaapiSubscriptionIds;
- TArray<SetCurrentAudioCultureAsyncTask*> AudioCultureAsyncTasks;
- TSet<UWorld*> WorldsInNeedOfPortalRoomsUpdate;
- #if !WITH_EDITOR
- TMap<FCulturePtr, FString> CachedUnrealToWwiseCulture;
- #endif
- static FCriticalSection EventToPlayingIDMapCriticalSection;
- static TMap<uint32, TArray<uint32>> EventToPlayingIDMap;
- static TMap<uint32, EAkAudioContext> PlayingIDToAudioContextMap;
- static void PostEventAtLocationEndOfEventCallback(AkCallbackType in_eType, AkCallbackInfo* in_pCallbackInfo);
- static TMap<uint32, FOnSwitchValueLoaded> OnSwitchValueLoadedMap;
- static TArray<TWeakObjectPtr<UAkAudioType>> AudioObjectsToLoadAfterInitialization;
- #if WITH_EDITORONLY_DATA
- #ifndef AK_OPTIMIZED
- static AkErrorMessageTranslator* m_UnrealErrorTranslator;
- #if AK_SUPPORT_WAAPI
- static AkWAAPIErrorMessageTranslator m_waapiErrorMessageTranslator;
- #endif
- #endif
- #endif
- };
|