summaryrefslogtreecommitdiff
path: root/noncore/multimedia/powerchord/vumeter.cpp
authormickeyl <mickeyl>2004-01-20 13:07:31 (UTC)
committer mickeyl <mickeyl>2004-01-20 13:07:31 (UTC)
commitd388324e7b91bdd95553c3849d77cddd5bd0bfc4 (patch) (side-by-side diff)
treeef660ffd25aa8cabbfa58e6c3b170e7c82511bc6 /noncore/multimedia/powerchord/vumeter.cpp
parent105007cca23072ee42a1f36625979966eb8a4854 (diff)
downloadopie-d388324e7b91bdd95553c3849d77cddd5bd0bfc4.zip
opie-d388324e7b91bdd95553c3849d77cddd5bd0bfc4.tar.gz
opie-d388324e7b91bdd95553c3849d77cddd5bd0bfc4.tar.bz2
initial import of powerchord courtesy Camilo Mesias <mailto:camilo@mesias.co.uk>
modified some bits to be compatible with the opie build system packaging not complete yet i hope camilo will maintain this here...
Diffstat (limited to 'noncore/multimedia/powerchord/vumeter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/powerchord/vumeter.cpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/noncore/multimedia/powerchord/vumeter.cpp b/noncore/multimedia/powerchord/vumeter.cpp
new file mode 100644
index 0000000..0c17435
--- a/dev/null
+++ b/noncore/multimedia/powerchord/vumeter.cpp
@@ -0,0 +1,105 @@
+//
+// VUMeter class
+//
+
+// Copyright (c) 2001 Camilo Mesias
+// camilo@mesias.co.uk
+//
+// This program 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 2
+// of the License, or (at your option) any later version.
+//
+// This program 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 this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#include <stdio.h>
+#include "vumeter.h"
+#include <qpainter.h>
+
+#include <math.h>
+
+VUMeter::VUMeter(QWidget *parent, const char *name )
+ : QWidget( parent, name ), Lannot("A"), Rannot("440 Hz")
+{
+ // setPalette( QPalette( QColor( 250, 250, 200) ) );
+
+ vuvalue = 0;
+
+ pix = 0;
+
+
+}
+
+VUMeter::~VUMeter()
+{
+ delete(pix);
+}
+
+void VUMeter::paintEvent(QPaintEvent *){
+
+ vupdate();
+}
+
+void VUMeter::bupdate(){
+
+ if (!pix){
+ pix = new QPixmap(rect().size());
+ }
+ // redraw whole background to buffer
+
+ pix->fill(this, 0, 0);
+
+ QPainter p( pix );
+
+ p.setBrush(white);
+ p.setPen(NoPen);
+
+ p.drawRect( QRect(0, 0, width(), height()) );
+
+ p.translate(width()/2, 0);
+
+ p.setBrush(black);
+ p.setPen(black);
+
+ // for (int i=-50;i<50;i+=4){
+ // p.drawLine((vuvalue), height()-10, vuvalue*2, 25);
+ // }
+
+ p.drawText(-100,15,Lannot);
+ p.drawText(65,15,Rannot);
+
+ p.drawText(-100, height()-25, QString("-"));
+ p.drawText(85, height()-25, QString("+"));
+ p.drawText(-2, 20, QString("0"));
+ p.end();
+
+}
+
+void VUMeter::vupdate(){
+
+ if (!pix){
+ bupdate();
+ }
+
+ // redraw line only
+
+ QPixmap tmp_pix(rect().size());
+
+ QPainter p( &tmp_pix );
+ p.drawPixmap(QPoint(0,0), *pix);
+
+ p.translate(width()/2, 0);
+ p.drawLine((vuvalue), height()-10, vuvalue*2, 25);
+ p.end();
+ bitBlt(this, rect().topLeft(), &tmp_pix);
+}
+
+
+