changeset 240:e006f4a57f86

add labels in plotter widget fix some bugs in the graphical equalizer
author benoitrigolleau
date Tue, 11 Mar 2008 13:53:59 +0000
parents 858a1121ebf7
children 2aea571dc9d4
files data/fileio/ModelReader.cpp data/fileio/ModelReader.h sv/filter/EqualizerFilter.cpp sv/filter/EqualizerFilter.h sv/sound_access.vcproj widgets/Plotter.cpp widgets/Plotter.h widgets/PropertyBox.cpp
diffstat 8 files changed, 113 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/data/fileio/ModelReader.cpp	Fri Mar 07 15:56:26 2008 +0000
+++ b/data/fileio/ModelReader.cpp	Tue Mar 11 13:53:59 2008 +0000
@@ -250,6 +250,7 @@
 			if (ok) model->setMaximumLevel(maximum);
 
 			m_model = model;
+			m_model->setObjectName(m_modelName);
 			return true;
 
 		} else 
@@ -267,7 +268,7 @@
 			READ_MANDATORY(int, resolution, toInt);
 			SparseOneDimensionalModel *model = new SparseOneDimensionalModel(sampleRate, resolution);
 			m_model = model;
-
+			m_model->setObjectName(m_modelName);
 			return true;
 
 		} else if (dimensions == 2 || dimensions == 3) 
@@ -301,6 +302,7 @@
 				model->setScaleUnits(units);
 				m_model = model;
 		    }
+			m_model->setObjectName(m_modelName);
 			return true;
 
 		} else 
@@ -316,6 +318,7 @@
 		
 		IntervalModel * model = new IntervalModel(sampleRate, resolution, notifyOnAdd);
 		m_model = model;
+		m_model->setObjectName(m_modelName);
 		return true;
 
 	} else
@@ -324,7 +327,7 @@
 			  << type.toLocal8Bit().data() << "\" for model id" << id << std::endl;
 	} 
 
-    return false;
+	return false;
 }
 
 bool ModelHandler::readDatasetStart(const QXmlAttributes &attributes)
@@ -541,6 +544,7 @@
     }
 
 	QString name = attributes.value("name");
+	m_modelName = name;
 	m_layer->setObjectName(name);
 
 	return true;
--- a/data/fileio/ModelReader.h	Fri Mar 07 15:56:26 2008 +0000
+++ b/data/fileio/ModelReader.h	Tue Mar 11 13:53:59 2008 +0000
@@ -74,6 +74,8 @@
 
 	QString		m_datasetSeparator;
 
+	QString m_modelName;
+
 };
 
 #endif
--- a/sv/filter/EqualizerFilter.cpp	Fri Mar 07 15:56:26 2008 +0000
+++ b/sv/filter/EqualizerFilter.cpp	Tue Mar 11 13:53:59 2008 +0000
@@ -50,6 +50,7 @@
 
 	m_plotbandcurve=(float *)malloc(sizeof(float)*(m_resolution));
 	
+	m_mutex->lock();
 	if (m_simpleMode)
 	{	
 		create_filterbands();	
@@ -60,13 +61,16 @@
 			m_eqcurve.push_back(0);
 		}
 	}
+	m_mutex->unlock();
 		
 	setFilterEnabled(false);		
 }
 
 EqualizerFilter::~EqualizerFilter()
 {
+	m_mutex->lock();
 	m_eqcurve.clear();
+	m_mutex->unlock();
 
 	for(int i = 0 ; i < m_nbBand ; i++){
 		delete band[i];
@@ -167,15 +171,24 @@
 		emit propertyChanged("Enable");
 	} else if (name == "DrawCurve"){
 		m_simpleMode = (value > 0) ? false : true;
-		if (m_simpleMode)
+		if (!m_simpleMode)
 		{
+			emit enableDrawCurve(!m_simpleMode);
+		}
+		else
+		{
+			m_mutex->lock();
+			emit enableDrawCurve(!m_simpleMode);
 			create_filterbands();	
+			m_mutex->unlock();
+			
 		}
-		emit enableDrawCurve(!m_simpleMode);
 	} else if (name.left(8) == "GainBand"){
 		int i = name.right(1).toInt();
 		m_gainband[i] = value;
+		m_mutex->lock();
 		create_filterbands();	
+		m_mutex->unlock();
 	} 
 
 #ifdef DEBUG_FILTERS
@@ -189,12 +202,15 @@
 
 void EqualizerFilter::setProperty(const PropertyName &name , QVector<float> value)
 {
+
 	if (name == "Equalizer"){
+		m_mutex->lock();
 		m_eqcurve.clear();
 		for (int i = 0; i < value.size(); i++)
 		{
 			m_eqcurve.push_back(value.at(i));
 		}
+		m_mutex->unlock();
 	}
 }
 
@@ -218,7 +234,7 @@
 
 void EqualizerFilter::create_filterbands()
 {
-	m_mutex->lock();
+	//m_mutex->lock();
 
 	float binwidth = 44100/4096;
 	
@@ -378,10 +394,10 @@
 		m_eqcurve.push_back(instgain);
 	}	
 	
-	m_mutex->unlock();
-
 	log10plot2(m_eqcurve,m_plotbandcurve, m_framesize, m_resolution);
 
 	emit filterChanged(m_plotbandcurve);
+
+	//m_mutex->unlock();
 	
 }
\ No newline at end of file
--- a/sv/filter/EqualizerFilter.h	Fri Mar 07 15:56:26 2008 +0000
+++ b/sv/filter/EqualizerFilter.h	Tue Mar 11 13:53:59 2008 +0000
@@ -2,7 +2,7 @@
 
 /*	Sound Access	
 		EASAIER client application.	
-		Silogic 2007. Laure Bajard. 
+		Silogic 2008. Laure Bajard. 
 	
 	Integration of the filter provided by:
 	Dublin Institute of Technology - Audio Research Group 2007
--- a/sv/sound_access.vcproj	Fri Mar 07 15:56:26 2008 +0000
+++ b/sv/sound_access.vcproj	Tue Mar 11 13:53:59 2008 +0000
@@ -309,6 +309,10 @@
 			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
 			>
 			<File
+				RelativePath=".\AirWorm.cpp"
+				>
+			</File>
+			<File
 				RelativePath="audioio\AudioCallbackPlaySource.cpp"
 				>
 			</File>
@@ -505,6 +509,32 @@
 				Name="Moc"
 				>
 				<File
+					RelativePath=".\AirWorm.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="audioio\AudioCallbackPlaySource.h"
 					>
 					<FileConfiguration
@@ -809,7 +839,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -820,7 +850,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -831,7 +861,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DQT_STATIC -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DQT_STATIC -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -994,7 +1024,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1005,7 +1035,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1016,7 +1046,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DQT_STATIC -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DQT_STATIC -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -1177,6 +1207,10 @@
 			Filter="cpp;c;cxx;moc;h;qrc;def;odl;idl;res"
 			>
 			<File
+				RelativePath=".\tmp_moc\moc_AirWorm.cpp"
+				>
+			</File>
+			<File
 				RelativePath="tmp_moc\moc_AudioCallbackPlaySource.cpp"
 				>
 			</File>
--- a/widgets/Plotter.cpp	Fri Mar 07 15:56:26 2008 +0000
+++ b/widgets/Plotter.cpp	Tue Mar 11 13:53:59 2008 +0000
@@ -26,8 +26,9 @@
 	for(int i = 0 ; i < m_signalWidth ; i++){
 		m_curveMask.push_back(0);
 	}
+	m_oldCurveMask = m_curveMask;
 
-	setMinimumSize(QSize(m_signalWidth + 10, m_signalHeight + 10));
+	setMinimumSize(QSize(m_signalWidth + 2*m_margin, m_signalHeight + 2*m_margin + 10));
 
 	refreshPixmap();
 
@@ -141,6 +142,7 @@
 			m_lastPoint.setX(x);
 			m_lastPoint.setY(y);
 			refreshPixmap();
+			emit filterChanged(m_curveMask);
 		}
 	}
 }
@@ -151,14 +153,41 @@
 		if ((event->button() == Qt::LeftButton) && m_curveMaskActive) {
 			m_curveMaskActive = false;
 			unsetCursor();
-			emit filterChanged(m_curveMask);
+			//emit filterChanged(m_curveMask);
 		}
 	}
 }
 
 void Plotter::drawGrid(QPainter *painter){
 	QPixmap pm(":icons/grid.png");
+	painter->setPen(Qt::white);
 	painter->drawPixmap(0,0,pm);
+	
+
+	/**VLines **************/ 
+
+	// middle line
+	painter->drawLine(m_signalWidth/2+m_margin, m_margin, m_signalWidth/2+m_margin , m_signalHeight + m_margin);
+	//quater lines
+	painter->drawLine(m_signalWidth/4+m_margin, m_margin, m_signalWidth/4+m_margin , m_signalHeight + m_margin);
+	painter->drawLine(3*m_signalWidth/4+m_margin, m_margin, 3*m_signalWidth/4+m_margin , m_signalHeight + m_margin);
+	
+	// border lines
+	painter->drawLine(m_margin, m_margin, m_margin , m_signalHeight + m_margin);
+	painter->drawLine(m_signalWidth+m_margin, m_margin, m_signalWidth+m_margin , m_signalHeight + m_margin);
+
+	/** HLines *************/
+
+
+	/** Labels *************/
+	painter->setPen(Qt::darkGray);
+	painter->drawText(0, m_signalHeight+2*m_margin+10, "10Hz");
+	painter->drawText(m_signalWidth/4 -10, m_signalHeight+2*m_margin+10, "100Hz");
+	painter->drawText(m_signalWidth/2 -10, m_signalHeight+2*m_margin+10, "1000Hz");
+	painter->drawText(3*m_signalWidth/4 -10, m_signalHeight+2*m_margin+10, "10000Hz");
+	painter->drawText(m_signalWidth -22, m_signalHeight+2*m_margin+10, "22KHz");
+
+
 }
 
 void Plotter::drawCurve(QPainter *painter){
@@ -209,6 +238,7 @@
 
 void Plotter::setFilter(float* filter)
 {
+
 	m_curveMask.clear();
 	for (int i=0; i<m_signalWidth; i++)
 	{
@@ -219,5 +249,14 @@
 
 void Plotter::enableDrawCurve(bool enable)
 {
+	if(enable!=m_enableDrawCurve){
+		QVector<float> aux = m_curveMask;
+		m_curveMask = m_oldCurveMask;
+		m_oldCurveMask = aux;
+		refreshPixmap();
+		if(enable){
+			emit filterChanged(m_curveMask);
+		}
+	}
 	m_enableDrawCurve = enable;
 }
\ No newline at end of file
--- a/widgets/Plotter.h	Fri Mar 07 15:56:26 2008 +0000
+++ b/widgets/Plotter.h	Tue Mar 11 13:53:59 2008 +0000
@@ -56,6 +56,7 @@
 	void drawMaskCurve(QPainter *painter);
 	QVector<QPoint> m_curve;
 	QVector<float> m_curveMask;
+	QVector<float> m_oldCurveMask;
     QPixmap m_pixmap;
 	int m_signalHeight;
 	int m_signalWidth;
--- a/widgets/PropertyBox.cpp	Fri Mar 07 15:56:26 2008 +0000
+++ b/widgets/PropertyBox.cpp	Tue Mar 11 13:53:59 2008 +0000
@@ -574,8 +574,8 @@
         if (!have) {
 			connect(cb, SIGNAL(filterChanged(QVector<float>&)), this, SLOT(propertyControllerChanged(QVector<float>&)));
             connect(m_container, SIGNAL(signalChanged(float*)), cb, SLOT(setCurve(float*)));
+			connect(m_container, SIGNAL(enableDrawCurve(bool)), cb, SLOT(enableDrawCurve(bool)));
 			connect(m_container, SIGNAL(filterChanged(float*)), cb, SLOT(setFilter(float*)));
-			connect(m_container, SIGNAL(enableDrawCurve(bool)), cb, SLOT(enableDrawCurve(bool)));
 			connect(cb, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget()));
             connect(cb, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget()));