traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src/traverso SpectralMeterWidget.cpp S...


From: Nicola Doebelin
Subject: [Traverso-commit] traverso/src/traverso SpectralMeterWidget.cpp S...
Date: Fri, 15 Feb 2008 14:23:34 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Nicola Doebelin <n_doebelin>    08/02/15 14:23:34

Modified files:
        src/traverso   : SpectralMeterWidget.cpp SpectralMeterWidget.h 

Log message:
        stops update of the widget 3 seconds after transport was stopped

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/SpectralMeterWidget.cpp?cvsroot=traverso&r1=1.51&r2=1.52
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/SpectralMeterWidget.h?cvsroot=traverso&r1=1.24&r2=1.25

Patches:
Index: SpectralMeterWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/SpectralMeterWidget.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- SpectralMeterWidget.cpp     7 Feb 2008 12:52:57 -0000       1.51
+++ SpectralMeterWidget.cpp     15 Feb 2008 14:23:34 -0000      1.52
@@ -50,6 +50,7 @@
 static const float DEFAULT_VAL = -999.0f;
 static const int UPDATE_INTERVAL = 40;
 static const uint MAX_SAMPLES = UINT_MAX;
+static const int STOP_DELAY = 3000; // in ms
 
 
 SpectralMeterWidget::SpectralMeterWidget(QWidget* parent)
@@ -373,6 +374,8 @@
                        // FIXME The removed plugin still needs to be 
deleted!!!!!!
                        
Command::process_command(m_sheet->get_plugin_chain()->remove_plugin(m_meter, 
false));
                        timer.stop();
+                       disconnect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(transfer_started()));
+                       disconnect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(transfer_stopped()));
                }
        }
        
@@ -382,17 +385,16 @@
                return;
        }
        
-       PluginChain* chain = m_sheet->get_plugin_chain();
-       sample_rate = audiodevice().get_sample_rate();
-       
        connect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(transfer_started()));
        connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(transfer_stopped()));
 
+       PluginChain* chain = m_sheet->get_plugin_chain();
+       sample_rate = audiodevice().get_sample_rate();
+       
        foreach(Plugin* plugin, chain->get_plugin_list()) {
                m_meter = qobject_cast<SpectralMeter*>(plugin);
                
                if (m_meter) {
-                       timer.start(UPDATE_INTERVAL);
                        return;
                }
        }
@@ -400,8 +402,6 @@
        m_meter = new SpectralMeter();
        m_meter->init();
        Command::process_command( chain->add_plugin(m_meter, false) );
-
-       timer.start(UPDATE_INTERVAL);
 }
 
 
@@ -615,11 +615,17 @@
 {
        // restarts the average curve
        sample_weight = 1;
+       timer.start(UPDATE_INTERVAL);
 }
 
 void SpectralMeterView::transfer_stopped()
 {
+       QTimer::singleShot(STOP_DELAY, this, SLOT(delay_timeout()));
+}
 
+void SpectralMeterView::delay_timeout()
+{
+       timer.stop();
 }
 
 Command* SpectralMeterView::set_mode()

Index: SpectralMeterWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/SpectralMeterWidget.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- SpectralMeterWidget.h       7 Feb 2008 12:52:57 -0000       1.24
+++ SpectralMeterWidget.h       15 Feb 2008 14:23:34 -0000      1.25
@@ -153,6 +153,7 @@
        void            update_data();
        void            transfer_started();
        void            transfer_stopped();
+       void            delay_timeout();
 
 
 public slots:




reply via email to

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