45 lines
1023 B
C++
45 lines
1023 B
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "SCompoundWidget.h"
|
|
#include "SPatternThumbnail.h"
|
|
#include "Render/UpdatableTexture.h"
|
|
#include "UI/Widget/WaveformViewer.h"
|
|
|
|
class FSampler;
|
|
|
|
|
|
class FSamplePatternWaveformHandle : public IWaveformHandle
|
|
{
|
|
public:
|
|
FSamplePatternWaveformHandle(FSampler* InSampler)
|
|
: Sampler(InSampler)
|
|
{
|
|
}
|
|
FSampler* Sampler = nullptr;
|
|
FWaveform* RenderData = nullptr;
|
|
virtual TArrayView<const FSamplePeak> GetWaveform(int32 SizeX) override;
|
|
virtual bool NeedUpdate() const override;
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class ARONA_API SSamplePatternThumbnail : public SPatternThumbnail
|
|
{
|
|
public:
|
|
SLATE_BEGIN_ARGS(SSamplePatternThumbnail)
|
|
{}
|
|
SLATE_END_ARGS()
|
|
|
|
/** Constructs this widget with InArgs */
|
|
void Construct(const FArguments& InArgs, FSampler* InSampler);
|
|
|
|
virtual void Redraw() override;
|
|
private:
|
|
TSharedPtr<FSamplePatternWaveformHandle> WaveformHandle;
|
|
TSharedPtr<SWaveformViewer> WaveformViewer;
|
|
};
|