Add Sonogram analyzer

Co-Authored-By: Jonas Kvinge <jonas@jkvinge.net>
This commit is contained in:
Sungrak Choi
2023-01-12 15:33:34 +09:00
committed by Jonas Kvinge
parent bb8d4e70ae
commit 5bea71cd5c
4 changed files with 152 additions and 0 deletions

51
src/analyzer/sonogram.h Normal file
View File

@@ -0,0 +1,51 @@
/*
Strawberry Music Player
This file was part of Clementine.
Copyright 2004, Melchior FRANZ <mfranz@kde.org>
Copyright 2009-2010, David Sansome <davidsansome@gmail.com>
Copyright 2014, Krzysztof Sobiecki <sobkas@gmail.com>
Copyright 2014, John Maguire <john.maguire@gmail.com>
Copyright 2015, Mark Furneaux <mark@furneaux.ca>
Strawberry is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Strawberry is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SONOGRAM_H
#define SONOGRAM_H
#include <QPixmap>
#include <QPainter>
#include "analyzerbase.h"
class Sonogram : public Analyzer::Base {
Q_OBJECT
public:
Q_INVOKABLE explicit Sonogram(QWidget *);
~Sonogram();
static const char *kName;
protected:
void resizeEvent(QResizeEvent *e) override;
void analyze(QPainter &p, const Analyzer::Scope &s, bool new_frame) override;
void transform(Analyzer::Scope &scope) override;
void demo(QPainter &p) override;
private:
QPixmap canvas_;
int scope_size_;
};
#endif // SONOGRAM_H