traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src core/Peak.cpp core/WriteSource.cpp...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src core/Peak.cpp core/WriteSource.cpp...
Date: Thu, 18 Oct 2007 17:37:12 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/10/18 17:37:12

Modified files:
        src/core       : Peak.cpp WriteSource.cpp 
        src/traverso/songcanvas: AudioClipView.cpp 

Log message:
        * (hopefully) an audioclip contour drawing 'fix'

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Peak.cpp?cvsroot=traverso&r1=1.68&r2=1.69
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/WriteSource.cpp?cvsroot=traverso&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.108&r2=1.109

Patches:
Index: core/Peak.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Peak.cpp,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- core/Peak.cpp       17 Oct 2007 10:20:42 -0000      1.68
+++ core/Peak.cpp       18 Oct 2007 17:37:12 -0000      1.69
@@ -288,11 +288,11 @@
                nframes_t startPos = startlocation.to_frame(44100);
                
                int offset = (startPos / zoomStep[zoomLevel]) * 2;
+               int truncate = 0;
                
                // Check if this zoom level has as many data as requested.
                if ( (pixelcount + offset) > 
data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR]) {
-                       // YES we know that sometimes we ommit the very last 
'pixel' to avoid painting artifacts...
-//                     PERROR("pixelcount exceeds available data size! 
(pixelcount is: %d, available is %d", pixelcount, 
data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR] - 
offset); 
+                       truncate = pixelcount - 
(data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR] - 
offset);
 //                     pixelcount = 
data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR] - offset;
                }
                
@@ -309,6 +309,10 @@
                        return NO_PEAKDATA_FOUND;
                }
                
+               for (int i=(pixelcount-truncate); i<(pixelcount); ++i) {
+                       data->peakdataDecodeBuffer->destination[0][i] = 0;
+               }
+
                *buffer = data->peakdataDecodeBuffer->destination[0];
 
                return read;

Index: core/WriteSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/WriteSource.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- core/WriteSource.cpp        12 Oct 2007 19:38:51 -0000      1.39
+++ core/WriteSource.cpp        18 Oct 2007 17:37:12 -0000      1.40
@@ -358,9 +358,6 @@
                m_diskio->unregister_write_source(this);
        }
 
-
-       printf("WriteSource :: thread id is: %ld\n", QThread::currentThreadId 
());
-       PWARN("WriteSource :: emiting exportFinished");
        emit exportFinished();
 
        return 1;

Index: traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -b -r1.108 -r1.109
--- traverso/songcanvas/AudioClipView.cpp       17 Oct 2007 12:15:42 -0000      
1.108
+++ traverso/songcanvas/AudioClipView.cpp       18 Oct 2007 17:37:12 -0000      
1.109
@@ -129,7 +129,7 @@
        painter->save();
        
        QRectF clipRect = m_boundingRect.adjusted(-1, -1, 1, 1);
-       painter->setClipRect(clipRect);
+       painter->setClipRect(m_boundingRect);
        
        if (m_clip->is_readsource_invalid()) {
                painter->fillRect(xstart, 0, pixelcount, m_height, 
themer()->get_color("AudioClip:invalidreadsource"));
@@ -198,13 +198,14 @@
        // Draw the contour
        if (m_height < m_mimimumheightforinfoarea) {
                painter->setPen(themer()->get_color("AudioClip:contour"));
-               painter->drawRect(xstart, 0, pixelcount, m_height - 1);
+               QRectF rect(0.5, 0, m_boundingRect.width() - 1, m_height - 0.5);
+               painter->drawRect(rect);
        } else {
                draw_clipinfo_area(painter, xstart, pixelcount);
                painter->setPen(themer()->get_color("AudioClip:contour"));
-               QRectF rectinfo(xstart, 0, pixelcount, m_infoAreaHeight - 1);
+               QRectF rectinfo(0.5, 0, m_boundingRect.width() - 1, 
m_infoAreaHeight - 0.5);
                painter->drawRect(rectinfo);
-               QRectF rect(xstart, 0, pixelcount, m_height - 1);
+               QRectF rect(0.5, 0, m_boundingRect.width() - 1, m_height - 0.5);
                painter->drawRect(rect);
        }
        
@@ -291,6 +292,8 @@
                if (availpeaks == Peak::PERMANENT_FAILURE || availpeaks == 
Peak::NO_PEAKDATA_FOUND) {
                        return;
                }               
+               
+//             pixelcount = std::min(pixelcount, availpeaks);
        }
        
        
@@ -480,8 +483,7 @@
                                m_polygonbottom.clear();
                                m_polygonbottom.reserve(pixelcount);
                                
-                               int range = pixelcount;
-                               for (int x = 0; x < range; x+=2) {
+                               for (int x = 0; x < pixelcount; x+=2) {
                                        m_polygontop.append( QPointF(x, 
scaleFactor * pixeldata[chan][bufferpos++]) );
                                        m_polygonbottom.append( QPointF(x, 
-scaleFactor * pixeldata[chan][bufferpos++]) );
                                }
@@ -746,7 +748,7 @@
        prepareGeometryChange();
 //     printf("AudioClipView::calculate_bounding_rect()\n");
        set_height(m_tv->get_height());
-       m_boundingRect = QRectF(0, 0, (m_clip->get_length() / 
m_sv->timeref_scalefactor), m_height);
+       m_boundingRect = QRectF(0, 0, (m_clip->get_length() / 
m_sv->timeref_scalefactor) + 0.5, m_height);
        update_start_pos();
        ViewItem::calculate_bounding_rect();
 }




reply via email to

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