47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
|
|
#include "SSamplePatternThumbnail.h"
|
|
|
|
#include "SlateApplication.h"
|
|
#include "SlateOptMacros.h"
|
|
#include "PluginHost/Sampler.h"
|
|
|
|
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
|
|
|
|
TArrayView<const FSamplePeak> FSamplePatternWaveformHandle::GetWaveform(int32 SizeX)
|
|
{
|
|
if (!RenderData)
|
|
{
|
|
RenderData = new FWaveform(1, 1024);
|
|
RenderData->OnPostUpdatePeak.AddLambda([this]()
|
|
{
|
|
OnRequestUpdate.Broadcast();
|
|
});
|
|
RenderData->UpdatePeak(Sampler->GetSampleBuffer());
|
|
}
|
|
return RenderData->GetPeakFromRange(0, SizeX, 0, Sampler->GetFrameCount());
|
|
}
|
|
|
|
bool FSamplePatternWaveformHandle::NeedUpdate() const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void SSamplePatternThumbnail::Construct(const FArguments& InArgs, FSampler* InSampler)
|
|
{
|
|
WaveformHandle = MakeShared<FSamplePatternWaveformHandle>(InSampler);
|
|
WaveformHandle->OnRequestUpdate.AddLambda([this](){ Invalidate(EInvalidateWidgetReason::Paint); });
|
|
ChildSlot
|
|
[
|
|
SAssignNew(WaveformViewer, SWaveformViewer)
|
|
.WaveformHandle(WaveformHandle)
|
|
];
|
|
}
|
|
|
|
void SSamplePatternThumbnail::Redraw()
|
|
{
|
|
}
|
|
|
|
END_SLATE_FUNCTION_BUILD_OPTIMIZATION
|