LMMS
Loading...
Searching...
No Matches
EqCurve.h
Go to the documentation of this file.
1/*
2 * EqCurve.h - defination of EqCurve and EqHandle classes.
3 *
4* Copyright (c) 2015 Steffen Baranowsky <BaraMGB/at/freenet/dot/de>
5 *
6 * This file is part of LMMS - https://lmms.io
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program (see COPYING); if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301 USA.
22 *
23 */
24
25#ifndef EQCURVE_H
26#define EQCURVE_H
27
28#include <QGraphicsObject>
29
30
31namespace lmms::gui
32{
33
34
42
43
44
45
46// implements the Eq_Handle to control a band
47class EqHandle : public QGraphicsObject
48{
49 Q_OBJECT
50public:
51 EqHandle( int num, int x, int y );
52
53 static float freqToXPixel( float freq, int w );
54 static float xPixelToFreq( float x , int w );
55 static float gainToYPixel( float gain, int h, float pixelPerUnitHeight );
56 static float yPixelToGain( float y, int h, float pixelPerUnitHeight );
57
58 QRectF boundingRect() const override;
59 QPainterPath getCurvePath();
60 float getPeakCurve( float x );
61 float getHighShelfCurve( float x );
62 float getLowShelfCurve( float x );
63 float getLowCutCurve( float x );
64 float getHighCutCurve( float x );
65 float getResonance();
66 int getNum();
68 void setType( EqHandleType t );
69 void setResonance( float r );
70 bool isMouseHover();
71 void setMouseHover( bool d );
72 bool isActiveHandle();
73 void setHandleActive( bool a );
74 bool mousePressed() const;
75 void sethp12();
76 void sethp24();
77 void sethp48();
78 void setlp12();
79 void setlp24();
80 void setlp48();
81
82signals:
84
85protected:
86 void mousePressEvent( QGraphicsSceneMouseEvent *event ) override;
87 void mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) override;
88 void paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget ) override;
89 void wheelEvent( QGraphicsSceneWheelEvent *wevent ) override;
90 void hoverEnterEvent( QGraphicsSceneHoverEvent *hevent ) override;
91 void hoverLeaveEvent( QGraphicsSceneHoverEvent *hevent ) override;
92 QVariant itemChange( GraphicsItemChange change, const QVariant &value ) override;
93
94private:
95 double calculateGain( const double freq, const double a1, const double a2, const double b0, const double b1, const double b2 );
96 void loadPixmap();
99 float m_scale;
100 bool m_hp12;
101 bool m_hp24;
102 bool m_hp48;
103 bool m_lp12;
104 bool m_lp24;
105 bool m_lp48;
114};
115
116
117
118
119class EqCurve : public QGraphicsObject
120{
121 Q_OBJECT
122public:
123 EqCurve( QList<EqHandle*> *handle, int x, int y );
124 QRectF boundingRect() const override;
125 void setModelChanged(bool mc);
126
127protected:
128 void paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget ) override;
129
130private:
131 QList<EqHandle*> *m_handle;
132 QPainterPath m_curve;
138 float m_scale;
139};
140
141
142} // namespace lmms::gui
143
144#endif // EQCURVE_H
uint8_t a
Definition Spc_Cpu.h:141
int m_width
Definition EqCurve.h:134
QPixmap m_curvePixmapCache
Definition EqCurve.h:133
QPainterPath m_curve
Definition EqCurve.h:132
EqCurve(QList< EqHandle * > *handle, int x, int y)
Definition EqCurve.cpp:648
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition EqCurve.cpp:668
float m_pixelsPerUnitHeight
Definition EqCurve.h:137
QList< EqHandle * > * m_handle
Definition EqCurve.h:131
int m_alpha
Definition EqCurve.h:135
void setModelChanged(bool mc)
Definition EqCurve.cpp:795
float m_scale
Definition EqCurve.h:138
int m_heigth
Definition EqCurve.h:134
QRectF boundingRect() const override
Definition EqCurve.cpp:660
bool m_modelChanged
Definition EqCurve.h:136
bool isMouseHover()
Definition EqCurve.cpp:423
EqHandleType getType()
Definition EqCurve.cpp:439
float getLowCutCurve(float x)
Definition EqCurve.cpp:307
bool m_hp24
Definition EqCurve.h:101
bool m_hp48
Definition EqCurve.h:102
float getHighShelfCurve(float x)
Definition EqCurve.cpp:237
void setResonance(float r)
Definition EqCurve.cpp:415
void sethp48()
Definition EqCurve.cpp:483
float getLowShelfCurve(float x)
Definition EqCurve.cpp:272
bool m_mouseHover
Definition EqCurve.h:106
void sethp12()
Definition EqCurve.cpp:463
void setHandleActive(bool a)
Definition EqCurve.cpp:455
EqHandle(int num, int x, int y)
Definition EqCurve.cpp:41
static float yPixelToGain(float y, int h, float pixelPerUnitHeight)
Definition EqCurve.cpp:98
void sethp24()
Definition EqCurve.cpp:473
int getNum()
Definition EqCurve.cpp:399
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition EqCurve.cpp:550
void setlp24()
Definition EqCurve.cpp:503
void setlp48()
Definition EqCurve.cpp:513
float getResonance()
Definition EqCurve.cpp:391
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition EqCurve.cpp:106
static float freqToXPixel(float freq, int w)
Definition EqCurve.cpp:67
float m_scale
Definition EqCurve.h:99
bool m_hp12
Definition EqCurve.h:100
bool m_lp12
Definition EqCurve.h:103
static float xPixelToFreq(float x, int w)
Definition EqCurve.cpp:79
bool m_lp24
Definition EqCurve.h:104
QRectF boundingRect() const override
Definition EqCurve.cpp:59
bool m_lp48
Definition EqCurve.h:105
EqHandleType m_type
Definition EqCurve.h:107
float m_heigth
Definition EqCurve.h:109
void hoverEnterEvent(QGraphicsSceneHoverEvent *hevent) override
Definition EqCurve.cpp:588
void setMouseHover(bool d)
Definition EqCurve.cpp:431
float getPeakCurve(float x)
Definition EqCurve.cpp:200
int m_numb
Definition EqCurve.h:108
void hoverLeaveEvent(QGraphicsSceneHoverEvent *hevent) override
Definition EqCurve.cpp:596
void setType(EqHandleType t)
Definition EqCurve.cpp:407
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition EqCurve.cpp:538
void loadPixmap()
Definition EqCurve.cpp:185
float m_pixelsPerUnitHeight
Definition EqCurve.h:98
bool m_active
Definition EqCurve.h:112
float getHighCutCurve(float x)
Definition EqCurve.cpp:349
bool isActiveHandle()
Definition EqCurve.cpp:447
void wheelEvent(QGraphicsSceneWheelEvent *wevent) override
Definition EqCurve.cpp:562
QPainterPath getCurvePath()
Definition EqCurve.cpp:168
float m_resonance
Definition EqCurve.h:110
QPixmap m_circlePixmap
Definition EqCurve.h:113
bool mousePressed() const
Definition EqCurve.cpp:192
double calculateGain(const double freq, const double a1, const double a2, const double b0, const double b1, const double b2)
Definition EqCurve.cpp:523
float m_width
Definition EqCurve.h:109
static float gainToYPixel(float gain, int h, float pixelPerUnitHeight)
Definition EqCurve.cpp:90
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
Definition EqCurve.cpp:604
bool m_mousePressed
Definition EqCurve.h:111
void setlp12()
Definition EqCurve.cpp:493
float m_pixelsPerUnitWidth
Definition EqCurve.h:97
UINT_D64 w
Definition inflate.c:942
struct huft * t
Definition inflate.c:943
int y
Definition inflate.c:1588
unsigned d
Definition inflate.c:940
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
JHUFF_TBL long freq[]
Definition jchuff.h:50
Definition AudioPortAudio.cpp:223
EqHandleType
Definition EqCurve.h:35
@ LowShelf
Definition EqCurve.h:37
@ LowPass
Definition EqCurve.h:40
@ HighShelf
Definition EqCurve.h:39
@ Para
Definition EqCurve.h:38
@ HighPass
Definition EqCurve.h:36
Definition mygetopt.h:88
int r
Definition crypt.c:458
uch h[RAND_HEAD_LEN]
Definition crypt.c:459