[Top][All Lists]
[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:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/traverso SpectralMeterWidget.cpp S...,
Nicola Doebelin <=