12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include "Wwise/WwiseIOHook.h"
- #include "Wwise/API/WwiseStreamMgrAPI.h"
- #include "Wwise/Stats/FileHandler.h"
- #include <inttypes.h>
- bool FWwiseIOHook::Init(const AkDeviceSettings& InDeviceSettings)
- {
- SCOPED_WWISEFILEHANDLER_EVENT_2(TEXT("FWwiseIOHook::Init"));
- auto* StreamMgr = IWwiseStreamMgrAPI::Get();
- if (UNLIKELY(!StreamMgr))
- {
- UE_LOG(LogWwiseFileHandler, Error, TEXT("IOHook: Could not retrieve StreamMgr while Init"));
- return false;
- }
-
-
- if (LIKELY(!StreamMgr->GetFileLocationResolver()))
- {
- UE_LOG(LogWwiseFileHandler, Verbose, TEXT("IOHook: Setting File Location Resolver"));
- StreamMgr->SetFileLocationResolver(GetLocationResolver());
- }
- else
- {
- UE_LOG(LogWwiseFileHandler, Log, TEXT("IOHook: Existing File Location Resolver. Not updating."));
- }
-
- auto Result = StreamMgr->CreateDevice(InDeviceSettings, GetIOHook(), StreamingDevice);
- UE_CLOG(UNLIKELY(Result != AK_Success || StreamingDevice == AK_INVALID_DEVICE_ID), LogWwiseFileHandler, Error, TEXT("IOHook: CreateDevice failed."));
- UE_CLOG(LIKELY(Result == AK_Success && StreamingDevice != AK_INVALID_DEVICE_ID), LogWwiseFileHandler, Verbose, TEXT("IOHook: CreateDevice = %" PRIu32), StreamingDevice);
- return StreamingDevice != AK_INVALID_DEVICE_ID;
- }
- void FWwiseIOHook::Term()
- {
- SCOPED_WWISEFILEHANDLER_EVENT_2(TEXT("FWwiseIOHook::Term"));
- auto* StreamMgr = IWwiseStreamMgrAPI::Get();
- if (UNLIKELY(!StreamMgr))
- {
- UE_LOG(LogWwiseFileHandler, Log, TEXT("IOHook::Term Could not term StreamMgr"));
- return;
- }
- if (LIKELY(StreamMgr->GetFileLocationResolver() == GetLocationResolver()))
- {
- UE_LOG(LogWwiseFileHandler, Verbose, TEXT("IOHook::Term Resetting File Location Resolver"));
- StreamMgr->SetFileLocationResolver(nullptr);
- }
- else
- {
- UE_LOG(LogWwiseFileHandler, Log, TEXT("IOHook::Term Different File Location Resolver. Not setting to null."));
- }
- if (LIKELY(StreamingDevice != AK_INVALID_DEVICE_ID))
- {
- StreamMgr->DestroyDevice(StreamingDevice);
- StreamingDevice = AK_INVALID_DEVICE_ID;
- UE_LOG(LogWwiseFileHandler, Verbose, TEXT("IOHook::Term Device Destroyed."));
- }
- else
- {
- UE_LOG(LogWwiseFileHandler, Log, TEXT("IOHook::Term No device to destroy."))
- }
- }
|