diff options
author | Robert Jonsson <spamatica@gmail.com> | 2011-04-27 18:41:35 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2011-04-27 18:41:35 +0000 |
commit | d8ac618f4dc9afd0731a9a3531d4641c9e7ea6fd (patch) | |
tree | 559d73385e4c65bc4bc23e9fe0617680cb2c5ed3 /muse2/muse/mixer | |
parent | 499ccec21dd2ac636fb019c98a902c351b4ec165 (diff) |
feedback parameters
Diffstat (limited to 'muse2/muse/mixer')
-rw-r--r-- | muse2/muse/mixer/CMakeLists.txt | 2 | ||||
-rw-r--r-- | muse2/muse/mixer/meter.cpp | 217 | ||||
-rw-r--r-- | muse2/muse/mixer/meter.h | 48 |
3 files changed, 0 insertions, 267 deletions
diff --git a/muse2/muse/mixer/CMakeLists.txt b/muse2/muse/mixer/CMakeLists.txt index e313f44d..3d76ebd6 100644 --- a/muse2/muse/mixer/CMakeLists.txt +++ b/muse2/muse/mixer/CMakeLists.txt @@ -25,7 +25,6 @@ QT4_WRAP_CPP ( mixer_mocs amixer.h astrip.h auxknob.h - meter.h mstrip.h panknob.h rack.h @@ -48,7 +47,6 @@ file (GLOB mixer_source_files amixer.cpp astrip.cpp auxknob.cpp - meter.cpp mstrip.cpp panknob.cpp rack.cpp diff --git a/muse2/muse/mixer/meter.cpp b/muse2/muse/mixer/meter.cpp deleted file mode 100644 index eb214e77..00000000 --- a/muse2/muse/mixer/meter.cpp +++ /dev/null @@ -1,217 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: meter.cpp,v 1.4.2.2 2009/05/03 04:14:00 terminator356 Exp $ -// -// (C) Copyright 2000 Werner Schweer (ws@seh.de) -//========================================================= - -#include <stdio.h> -#include <cmath> - -#include <QMouseEvent> -#include <QPainter> -#include <QResizeEvent> - -#include "meter.h" -#include "gconfig.h" -#include "fastlog.h" - -//--------------------------------------------------------- -// Meter -//--------------------------------------------------------- - -Meter::Meter(QWidget* parent, MeterType type) - : QFrame(parent) //Qt::WNoAutoErase - { - setBackgroundRole(QPalette::NoRole); - setAttribute(Qt::WA_NoSystemBackground); - setAttribute(Qt::WA_StaticContents); - // This is absolutely required for speed! Otherwise painfully slow because we get - // full rect paint events even on small scrolls! See help on QPainter::scroll(). - setAttribute(Qt::WA_OpaquePaintEvent); - - mtype = type; - overflow = false; - val = 0.0; - maxVal = 0.0; - minScale = mtype == DBMeter ? config.minMeter : 0.0; // min value in dB or int - maxScale = mtype == DBMeter ? 10.0 : 127.0; - yellowScale = -10; - redScale = 0; - setLineWidth(0); - setMidLineWidth(0); - } - -//--------------------------------------------------------- -// setVal -//--------------------------------------------------------- - -void Meter::setVal(double v, double max, bool ovl) - { - overflow = ovl; - bool ud = false; - - if(mtype == DBMeter) - { - double minScaleLin = pow(10.0, minScale/20.0); - if((v >= minScaleLin && val != v) || val >= minScaleLin) - { - val = v; - ud = true; - } - } - else - { - if(val != v) - { - val = v; - ud = true; - } - } - - if(maxVal != max) - { - maxVal = max; - ud = true; - } - - if(ud) - update(); - } -//--------------------------------------------------------- -// resetPeaks -// reset peak and overflow indicator -//--------------------------------------------------------- - -void Meter::resetPeaks() - { - maxVal = val; - overflow = val > 0.0; - update(); - } - -//--------------------------------------------------------- -// setRange -//--------------------------------------------------------- - -void Meter::setRange(double min, double max) - { - minScale = min; - maxScale = max; - update(); - } - -//--------------------------------------------------------- -// paintEvent -//--------------------------------------------------------- - -void Meter::paintEvent(QPaintEvent* /*ev*/) - { - // TODO: Could make better use of event rectangle, for speed. - - QPainter p(this); - - double range = maxScale - minScale; - - int fw = frameWidth(); - int w = width() - 2*fw; - int h = height() - 2*fw; - int yv; - - if(mtype == DBMeter) - yv = val == 0 ? h : int(((maxScale - (fast_log10(val) * 20.0)) * h)/range); - else - yv = val == 0 ? h : int(((maxScale - val) * h)/range); - - if(yv > h) yv = h; - - // Draw the red, green, and yellow sections. - drawVU(p, w, h, yv); - - // Draw the peak white line. - int ymax; - if(mtype == DBMeter) - ymax = maxVal == 0 ? 0 : int(((maxScale - (fast_log10(maxVal) * 20.0)) * h)/range); - else - ymax = maxVal == 0 ? 0 : int(((maxScale - maxVal) * h)/range); - p.setPen(Qt::white); - p.drawLine(0, ymax, w, ymax); - } - -//--------------------------------------------------------- -// drawVU -//--------------------------------------------------------- - -void Meter::drawVU(QPainter& p, int w, int h, int yv) -{ - if(mtype == DBMeter) - { - double range = maxScale - minScale; - int y1 = int((maxScale - redScale) * h / range); - int y2 = int((maxScale - yellowScale) * h / range); - - if(yv < y1) - { - // Red section: - p.fillRect(0, 0, w, yv, QBrush(0x8e0000)); // dark red - p.fillRect(0, yv, w, y1-yv, QBrush(0xff0000)); // light red - - // Yellow section: - p.fillRect(0, y1, w, y2-y1, QBrush(0xffff00)); // light yellow - - // Green section: - p.fillRect(0, y2, w, h-y2, QBrush(0x00ff00)); // light green - } - else - if(yv < y2) - { - // Red section: - p.fillRect(0, 0, w, y1, QBrush(0x8e0000)); // dark red - - // Yellow section: - p.fillRect(0, y1, w, yv-y1, QBrush(0x8e8e00)); // dark yellow - p.fillRect(0, yv, w, y2-yv, QBrush(0xffff00)); // light yellow - - // Green section: - p.fillRect(0, y2, w, h-y2, QBrush(0x00ff00)); // light green - } - else - //if(yv <= y3) - { - // Red section: - p.fillRect(0, 0, w, y1, QBrush(0x8e0000)); // dark red - - // Yellow section: - p.fillRect(0, y1, w, y2-y1, QBrush(0x8e8e00)); // dark yellow - - // Green section: - p.fillRect(0, y2, w, yv-y2, QBrush(0x007000)); // dark green - p.fillRect(0, yv, w, h-yv, QBrush(0x00ff00)); // light green - } - } - else - { - p.fillRect(0, 0, w, yv, QBrush(0x007000)); // dark green - p.fillRect(0, yv, w, h-yv, QBrush(0x00ff00)); // light green - } -} - -//--------------------------------------------------------- -// resizeEvent -//--------------------------------------------------------- - -void Meter::resizeEvent(QResizeEvent* /*ev*/) - { - - } - -//--------------------------------------------------------- -// mousePressEvent -//--------------------------------------------------------- - -void Meter::mousePressEvent(QMouseEvent*) - { - emit mousePress(); - } - diff --git a/muse2/muse/mixer/meter.h b/muse2/muse/mixer/meter.h deleted file mode 100644 index 30bdfea6..00000000 --- a/muse2/muse/mixer/meter.h +++ /dev/null @@ -1,48 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: meter.h,v 1.1.1.1.2.2 2009/05/03 04:14:00 terminator356 Exp $ -// -// (C) Copyright 2000 Werner Schweer (ws@seh.de) -//========================================================= - -#ifndef __METER_H__ -#define __METER_H__ - -#include <QFrame> - -class QResizeEvent; -class QMouseEvent; -class QPainter; - -class Meter : public QFrame { - public: - enum MeterType {DBMeter, LinMeter}; - private: - MeterType mtype; - bool overflow; - double val; - double maxVal; - double minScale, maxScale; - int yellowScale, redScale; - - void drawVU(QPainter& p, int, int, int); - - Q_OBJECT - void paintEvent(QPaintEvent*); - virtual void resizeEvent(QResizeEvent*); - virtual void mousePressEvent(QMouseEvent*); - - public slots: - void resetPeaks(); - void setVal(double, double, bool); - - signals: - void mousePress(); - - public: - Meter(QWidget* parent, MeterType type = DBMeter); - void setRange(double min, double max); - }; -#endif - |