Zrythm v2.0.0-alpha.1+31.4967fd053471
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
spectrum_analyzer_canvas_renderer.h
1// SPDX-FileCopyrightText: © 2025-2026 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include <QColor>
7#include <QVector>
8#include <QtCanvasPainter/qcanvaspainter.h>
9#include <QtCanvasPainter/qcanvaspainteritemrenderer.h>
10
11namespace zrythm::gui::qquick
12{
13
15
16class SpectrumAnalyzerCanvasRenderer : public QCanvasPainterItemRenderer
17{
18public:
19 SpectrumAnalyzerCanvasRenderer () = default;
20 Q_DISABLE_COPY_MOVE (SpectrumAnalyzerCanvasRenderer)
21
22 void synchronize (QCanvasPainterItem * item) override;
23 void paint (QCanvasPainter * painter) override;
24
25private:
26 QColor spectrum_color_;
27 float canvas_width_ = 0.0f;
28 float canvas_height_ = 0.0f;
29 QVector<float> spectrum_data_;
30 float sample_rate_ = 44100.0f;
31 uint64_t prev_generation_ = 0;
32};
33
34}