traverso-commit
[Top][All Lists]
Advanced

[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;
                }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]