24class SpectrumAnalyzerCanvasItem :
public QCanvasPainterItem
30 NOTIFY stereoPortChanged REQUIRED)
33 portObservationManager WRITE setPortObservationManager NOTIFY
34 portObservationManagerChanged REQUIRED)
35 Q_PROPERTY (
int fftSize READ fftSize WRITE setFftSize NOTIFY fftSizeChanged)
37 float sampleRate READ sampleRate WRITE setSampleRate NOTIFY
38 sampleRateChanged REQUIRED)
40 QColor spectrumColor READ spectrumColor WRITE setSpectrumColor NOTIFY
44 explicit SpectrumAnalyzerCanvasItem (QQuickItem * parent =
nullptr);
45 ~SpectrumAnalyzerCanvasItem ()
override;
47 QCanvasPainterItemRenderer * createItemRenderer ()
const override;
57 float sampleRate ()
const;
58 QColor spectrumColor ()
const;
60 void setFftSize (
int size);
61 void setSampleRate (
float rate);
62 void setSpectrumColor (
const QColor &color);
64 Q_INVOKABLE
float getScaledFrequency (
68 float max_frequency)
const;
69 Q_INVOKABLE
float getFrequencyForBin (
int bin,
int num_bins)
const;
71 static float scaled_frequency (
78 const QVector<float> &spectrumData ()
const;
79 uint64_t spectrumGeneration ()
const;
82 void stereoPortChanged ();
83 void portObservationManagerChanged ();
84 void fftSizeChanged ();
85 void sampleRateChanged ();
86 void spectrumColorChanged ();
89 void process_audio ();
90 void try_create_token ();
91 void init_fft (
int size);
94 std::unique_ptr<Impl> impl_;