AronaSlate/Source/Arona/UI/Widget/Pattern/SSamplePatternInstance.h

28 lines
833 B
C++

#pragma once
#include "SPatternInstance.h"
#include "PeakFile/PeakFile.h"
#include "UI/Widget/WaveformViewer.h"
class SSamplePatternInstance;
class FSamplePatternInstanceWaveformHandle : public IWaveformHandle
{
public:
FSamplePatternInstanceWaveformHandle(SSamplePatternInstance* InPatternInstance);
SSamplePatternInstance* PatternInstanceWidget;
virtual TArrayView<const FSamplePeak> GetWaveform(int32 SizeX) override;
FWaveform* RenderData = nullptr;
};
class ARONA_API SSamplePatternInstance : public SPatternInstance
{
public:
SSamplePatternInstance();
virtual TSharedRef<SWidget> GetViewWidget() override;
virtual void RequestUpdate() override;
protected:
virtual FReply OpenPatternMenu() override;
TSharedPtr<FSamplePatternInstanceWaveformHandle> WaveformHandle;
TSharedPtr<SWaveformViewer> WaveformViewer;
};