Files
UnrealEngine/Engine/Source/Runtime/LiveLinkInterface/Private/LiveLinkSourceSettings.cpp
2025-05-18 13:04:45 +08:00

48 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "LiveLinkSourceSettings.h"
#include "UObject/EnterpriseObjectVersion.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(LiveLinkSourceSettings)
ULiveLinkSourceSettings::ULiveLinkSourceSettings()
{
if (!HasAnyFlags(RF_ClassDefaultObject | RF_ArchetypeObject))
{
BufferSettings.MaxNumberOfFrameToBuffered = GetDefault<ULiveLinkDefaultSourceSettings>()->DefaultSourceFrameBufferSize;
}
}
void ULiveLinkSourceSettings::Serialize(FArchive& Ar)
{
Super::Serialize(Ar);
Ar.UsingCustomVersion(FEnterpriseObjectVersion::GUID);
}
#if WITH_EDITOR
bool ULiveLinkSourceSettings::CanEditChange(const FProperty* InProperty) const
{
if (Super::CanEditChange(InProperty))
{
if (InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, TimecodeFrameOffset)
|| InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, ValidTimecodeFrame)
|| InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, bValidTimecodeFrameEnabled)
|| InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, bUseTimecodeSmoothLatest))
{
return Mode == ELiveLinkSourceMode::Timecode;
}
if (InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, ValidEngineTime)
|| InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, EngineTimeOffset)
|| InProperty->GetFName() == GET_MEMBER_NAME_CHECKED(FLiveLinkSourceBufferManagementSettings, bValidEngineTimeEnabled))
{
return Mode == ELiveLinkSourceMode::EngineTime;
}
return true;
}
return false;
}
#endif //WITH_EDITOR