#pragma once #include "../Axis/AbsAxis.h" #include "../GlobalTypes.h" #include namespace YSG { class TimeAxis; struct AudioFrequentPrivate; class LIB_DECL AudioFrequent : public RenderAble { public: Q_Ptr2(AudioFrequent) void giveData(int tick, double data); PROP(int, timePointSize) PROP(TimeAxis*, timeAxis) PROP(Axis*, valueAxis) PROP(Range, keyRange) PROP(QColor, color) struct Builder; }; struct AudioFrequent_Prop { int timePointSize = 100; TimeAxis *timeAxis; Axis *valueAxis{}; Range keyRange = {0, 20}; QColor color = Qt::yellow; }; struct LIB_DECL AudioFrequent::Builder : AudioFrequent_Prop { PROP_B(int, timePointSize) PROP_B(TimeAxis*, timeAxis) PROP_B(Axis*, valueAxis) PROP_B(Range, keyRange) PROP_B(QColor, color) SETTER(QString, layerName, "plottable") Builder(TimeAxis* timeAxis, Axis* valueAxis); AudioFrequent* build(); protected: Axis* valueAxis; TimeAxis* timeAxis{}; Plot *plot{}; }; }