Go to the documentation of this file.
19 #include <QCoreApplication>
32 #include <libavutil/mem.h>
33 #include <libavcodec/avfft.h>
43 VisualNode(
short *l,
short *r,
unsigned long n, std::chrono::milliseconds timecode)
65 explicit VisualBase(
bool screensaverenable =
false);
78 virtual bool draw( QPainter *,
const QColor & ) = 0;
79 virtual void resize(
const QSize &size ) = 0;
84 static void drawWarning(QPainter *
p,
const QColor &
back, QSize size,
const QString& warning,
int fontsize = 28);
97 virtual const QString &
name(
void)
const = 0;
107 #define RUBBERBAND 0 // NOLINT(cppcoreguidelines-macro-usage)
108 #define TWOCOLOUR 1 // NOLINT(cppcoreguidelines-macro-usage)
116 void resize(
const QSize &size )
override;
118 bool draw( QPainter *
p,
const QColor &
back )
override;
138 bool draw( QPainter *
p,
const QColor &
back )
override;
143 #define WF_AUDIO_SIZE 4096 // maximum samples to process at a time
144 #define WF_WIDTH 1920 // image cache size, will scale to any display
145 #define WF_HEIGHT 1080
156 bool draw( QPainter *
p,
const QColor &
back )
override;
182 explicit LogScale(
int maxscale = 0,
int maxrange = 0);
187 void setMax(
int maxscale,
int maxrange);
208 void resize(
const QSize &size)
override;
210 bool draw(QPainter *
p,
const QColor &
back = Qt::black)
override;
215 static inline double clamp(
double cur,
double max,
double min);
241 void resize (
const QSize &newsize)
override;
242 bool draw(QPainter *
p,
const QColor &
back = Qt::black)
override;
247 void drawRect(QPainter *
p, QRect *rect,
int i,
int c,
int w,
int h);
262 #define piano_audio float
263 #define goertzel_data float
287 void resize(
const QSize &size)
override;
295 bool draw(QPainter *
p,
const QColor &
back = Qt::black)
override;
300 static inline double clamp(
double cur,
double max,
double min);
328 void resize(
const QSize &size)
override;
330 bool draw(QPainter *
p,
const QColor &
back = Qt::black)
override;
352 ~Blank()
override =
default;
354 void resize(
const QSize &size)
override;
356 bool draw(QPainter *
p,
const QColor &
back = Qt::black)
override;
364 #endif // __visualize_h
std::vector< double > m_magnitude
int samples_process_before_display_update
void findFrontCover(void)
static VisFactory * g_pVisFactories
void resize(const QSize &size) override
static constexpr unsigned int kPianoNumKeys
bool draw(QPainter *p, const QColor &back=Qt::black) override
bool processUndisplayed(VisualNode *node) override
unsigned long getDesiredSamples(void) override
bool process(VisualNode *node) override
VisualNode(short *l, short *r, unsigned long n, std::chrono::milliseconds timecode)
virtual unsigned long getDesiredSamples(void)
Q_DECLARE_TR_FUNCTIONS(AlbumArt)
void handleKeyPress(const QString &action) override
int operator[](int index) const
static constexpr uint16_t SAMPLES_DEFAULT_SIZE
QVector< double > m_magnitudes
std::vector< int > m_indices
bool draw(QPainter *p, const QColor &back=Qt::black) override
void resize(const QSize &size) override
bool process(VisualNode *node) override
LogScale(int maxscale=0, int maxrange=0)
std::chrono::milliseconds m_offsetProcessed
VisualBase(bool screensaverenable=false)
ImageType m_currImageType
void handleKeyPress(const QString &action) override
bool draw(QPainter *p, const QColor &back=Qt::black) override
static constexpr double kPianoKeypressTooLight
std::chrono::milliseconds m_offset
bool process(VisualNode *node) override
~MonoScope() override=default
virtual void resize(const QSize &size)=0
bool draw(QPainter *p, const QColor &back=Qt::black) override
QColor m_blackTargetColor
bool draw(QPainter *p, const QColor &back) override
static constexpr unsigned long kPianoAudioSize
void drawRect(QPainter *p, QRect *rect, int i, int c, int w, int h)
static constexpr double kPianoSpectrumSmoothing
~AlbumArt() override=default
~StereoScope() override=default
void setMax(int maxscale, int maxrange)
virtual int getDesiredFPS(void)
bool process(VisualNode *node=nullptr) override
virtual ~VisualBase(void)
virtual bool draw(QPainter *, const QColor &)=0
void resize(const QSize &size) override
std::vector< double > m_magnitudes
virtual uint plugins(QStringList *list) const =0
static const VisFactory * VisFactories()
MusicMetadata * m_currentMetadata
virtual bool process(VisualNode *node)=0
virtual VisualBase * create(MainVisual *parent, const QString &pluginName) const =0
static constexpr double kPianoRmsNegligible
piano_audio * m_audioData
virtual bool processUndisplayed(VisualNode *)
void handleKeyPress(const QString &action) override
virtual ~VisFactory()=default
~Squares() override=default
bool draw(QPainter *p, const QColor &back) override
piano_key_data * m_pianoData
void resize(const QSize &size) override
bool draw(QPainter *p, const QColor &back=Qt::black) override
FFTContext * m_fftContextForward
~Blank() override=default
bool m_xscreensaverenable
void resize(const QSize &newsize) override
static constexpr goertzel_data kPianoMinVol
virtual const QString & name(void) const =0
void resize(const QSize &size) override
QColor m_whiteTargetColor
virtual void handleKeyPress(const QString &action)=0
bool process(VisualNode *node) override
VisFactory * m_pNextVisFactory
void handleKeyPress(const QString &action) override
bool process(VisualNode *node=nullptr) override
static double clamp(double cur, double max, double min)
static double clamp(double cur, double max, double min)
const VisFactory * next() const
std::vector< QRect > m_rects
bool process_all_types(VisualNode *node, bool this_will_be_displayed)
void handleKeyPress(const QString &action) override
goertzel_data max_magnitude_seen
static void drawWarning(QPainter *p, const QColor &back, QSize size, const QString &warning, int fontsize=28)
void handleKeyPress(const QString &action) override