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: Remon Sijrier
Subject: [Traverso-commit] traverso/src/traverso/songcanvas AudioClipView.cpp
Date: Mon, 24 Sep 2007 19:13:28 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/09/24 19:13:28

Modified files:
        src/traverso/songcanvas: AudioClipView.cpp 

Log message:
        * actually, there isn't need for doublebuffering at all anymore in 
respect to reading peak data :) 

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.92&r2=1.93

Patches:
Index: AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -b -r1.92 -r1.93
--- AudioClipView.cpp   24 Sep 2007 18:46:07 -0000      1.92
+++ AudioClipView.cpp   24 Sep 2007 19:13:28 -0000      1.93
@@ -254,8 +254,7 @@
        int peakdatacount = microView ? pixelcount : pixelcount * 2;
 
        int buffersize = microView ? sizeof(short) * peakdatacount : 
sizeof(peak_data_t) * peakdatacount;
-       float* buffers[channels];
-       float pixeldata[channels][buffersize];
+       float* pixeldata[channels];
        float curvemixdown[buffersize];
        
        Peak* peak = m_clip->get_peak();
@@ -267,12 +266,10 @@
        // Load peak data for all channels, if no peakdata is returned
        // for a certain Peak object, schedule it for loading.
        for (int chan=0; chan < channels; ++chan) {
-//             memset(buffers[chan], 0, buffersize * sizeof(peak_data_t));
-               
                TimeRef clipstartoffset = m_clip->get_source_start_location();
                
                int availpeaks = peak->calculate_peaks( chan,
-                                                       &buffers[chan],
+                                                       &pixeldata[chan],
                                                        microView ? 
m_song->get_hzoom() : m_song->get_hzoom() + 1,
                                                        (xstart * 
m_sv->timeref_scalefactor) + clipstartoffset,
                                                        microView ? 
peakdatacount : peakdatacount / 2);
@@ -324,11 +321,9 @@
        // and store it in the first channels pixeldata.
        if (!microView) {
                for (int chan=0; chan < channels; chan++) {
-                       if (m_classicView) {
-                               memcpy(pixeldata[chan], buffers[chan], 
pixelcount*2*sizeof(float));
-                       } else {
-                               for (int i = 0; i < (pixelcount*2); i+=2) {
-                                       pixeldata[chan][i] = - 
f_max(buffers[chan][i], - buffers[chan][i+1]);
+                       if (!m_classicView) {
+                               for (int i=0, j=0; i < (pixelcount*2); i+=2, 
++j) {
+                                       pixeldata[chan][j] = - 
f_max(pixeldata[chan][i], - pixeldata[chan][i+1]);
                                }
                        }
                }
@@ -433,7 +428,7 @@
                        p->drawLine(xstart, 0, xstart + pixelcount, 0);
                        
                        for (int x = xstart; x < (pixelcount+xstart); x++) {
-                               polygon.append( QPointF(x, scaleFactor * 
buffers[chan][bufferPos++]) );
+                               polygon.append( QPointF(x, scaleFactor * 
pixeldata[chan][bufferPos++]) );
                        }
                        
                        if 
(themer()->get_property("AudioClip:wavemicroview:antialiased", 0).toInt()) {
@@ -496,7 +491,7 @@
 
                                for (int x = xstart; x < (pixelcount+xstart); 
x+=2) {
                                        polygontop.append( QPointF(x, 
scaleFactor * pixeldata[chan][bufferpos]) );
-                                       bufferpos += 2;
+                                       bufferpos++;
                                }
                                
                                polygontop.append(QPointF(xstart + pixelcount, 
0));




reply via email to

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