20#include <wx/geometry.h>
34 std::function<
void(
float)> onDbRangeChanged);
39 const std::chrono::steady_clock::time_point
start;
40 std::chrono::steady_clock::time_point
now;
52 void OnPaint(wxPaintEvent& evt);
53 void OnSize(wxSizeEvent& evt);
54 void OnTimer(wxTimerEvent& evt);
62 std::shared_ptr<DynamicRangeProcessorOutputPacketQueue>
mOutputQueue;
64 std::optional<DynamicRangeProcessorHistory>
mHistory;
71 std::optional<ClockSynchronization>
mSync;
72 std::vector<double>
mX;
A clock that can be paused and resumed.
DynamicRangeProcessorClock mClock
const Observer::Subscription mPlaybackEventSubscription
std::vector< wxPoint2DDouble > mOutput
bool mPlaybackAboutToStart
bool AcceptsFocusFromKeyboard() const override
static constexpr auto minWidth
std::optional< DynamicRangeProcessorHistory > mHistory
void ShowInput(bool show)
std::optional< ClockSynchronization > mSync
void OnTimer(wxTimerEvent &evt)
const Observer::Subscription mInitializeProcessingSettingsSubscription
DynamicRangeProcessorHistoryPanel(wxWindow *parent, wxWindowID winid, CompressorInstance &instance, std::function< void(float)> onDbRangeChanged)
const Observer::Subscription mRealtimeResumeSubscription
void InitializeForPlayback(CompressorInstance &instance, double sampleRate)
bool AcceptsFocus() const override
std::vector< wxPoint2DDouble > mTarget
void ShowOutput(bool show)
std::shared_ptr< DynamicRangeProcessorOutputPacketQueue > mOutputQueue
void ShowTarget(bool show)
void OnSize(wxSizeEvent &evt)
std::vector< wxPoint2DDouble > mInput
void ShowActual(bool show)
std::vector< wxPoint2DDouble > mActual
std::vector< DynamicRangeProcessorOutputPacket > mPacketBuffer
const std::function< void(float)> mOnDbRangeChanged
CompressorInstance & mCompressorInstance
void OnPaint(wxPaintEvent &evt)
A move-only handle representing a connection to a Publisher.
constexpr auto sampleRate
std::chrono::steady_clock::time_point now
const float firstPacketTime
const std::chrono::steady_clock::time_point start