summaryrefslogtreecommitdiff
path: root/muse2/muse/mixer
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2011-04-27 18:41:35 +0000
committerRobert Jonsson <spamatica@gmail.com>2011-04-27 18:41:35 +0000
commitd8ac618f4dc9afd0731a9a3531d4641c9e7ea6fd (patch)
tree559d73385e4c65bc4bc23e9fe0617680cb2c5ed3 /muse2/muse/mixer
parent499ccec21dd2ac636fb019c98a902c351b4ec165 (diff)
feedback parameters
Diffstat (limited to 'muse2/muse/mixer')
-rw-r--r--muse2/muse/mixer/CMakeLists.txt2
-rw-r--r--muse2/muse/mixer/meter.cpp217
-rw-r--r--muse2/muse/mixer/meter.h48
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
-