[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso/songcanvas AudioClipView.cpp
From: |
Ben Levitt |
Subject: |
[Traverso-commit] traverso/src/traverso/songcanvas AudioClipView.cpp |
Date: |
Sun, 06 Jan 2008 06:11:28 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Ben Levitt <benjie> 08/01/06 06:11:28
Modified files:
src/traverso/songcanvas: AudioClipView.cpp
Log message:
fix paint crash for rectified audio in microView
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.122&r2=1.123
Patches:
Index: AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -b -r1.122 -r1.123
--- AudioClipView.cpp 5 Jan 2008 21:51:51 -0000 1.122
+++ AudioClipView.cpp 6 Jan 2008 06:11:28 -0000 1.123
@@ -512,10 +512,10 @@
p->setMatrix(matrix().translate(xstart +
adjustforevenpixel, ytrans).scale(1, scaleFactor), true);
+ if (!validPathCache) {
QPainterPath pathtop;
QPainterPath pathbottom;
- if (!validPathCache) {
m_polygonbottom.clear();
m_polygonbottom.reserve(pixelcount + 3);
@@ -540,8 +540,6 @@
p->drawLine(0, 0, pixelcount, 0);
} else {
- QPainterPath path;
-
scaleFactor = (float) height * 0.95 *
m_clip->get_gain() / Peak::MAX_DB_VALUE * curveDefaultValue;
ytrans = height + (chan * height);
@@ -550,6 +548,9 @@
scaleFactor *= channels;
}
+ if (!validPathCache) {
+ QPainterPath path;
+
for (int x=0; x<pixelcount; x+=2) {
m_polygontop.append( QPointF(x,
scaleFactor * pixeldata[chan][bufferpos]) );
bufferpos++;
@@ -559,15 +560,20 @@
path.addPolygon(m_polygontop);
path.lineTo(0, 0);
+ m_pathCache.at(chan)->path = path;
+ } else {
+// printf("using existing path for
painting\n");
+ }
+
p->setMatrix(matrix().translate(xstart +
adjustforevenpixel, ytrans), true);
- p->drawPath(path);
+
+ p->drawPath(m_pathCache.at(chan)->path);
}
}
p->restore();
-
if (m_mergedView) {
break;
}