diff --git a/src/library/trackcollection.cpp b/src/library/trackcollection.cpp index e6e4bae75441..73dbcc2929dd 100644 --- a/src/library/trackcollection.cpp +++ b/src/library/trackcollection.cpp @@ -36,6 +36,7 @@ void TrackCollection::connectDatabase(QSqlDatabase database) { m_playlistDao.initialize(database); m_cueDao.initialize(database); m_directoryDao.initialize(database); + m_analysisDao.initialize(database); m_libraryHashDao.initialize(database); m_crates.connectDatabase(database); } diff --git a/src/waveform/renderers/glslwaveformrenderersignal.cpp b/src/waveform/renderers/glslwaveformrenderersignal.cpp index 0409882afccb..7f2ce1d00302 100644 --- a/src/waveform/renderers/glslwaveformrenderersignal.cpp +++ b/src/waveform/renderers/glslwaveformrenderersignal.cpp @@ -219,6 +219,11 @@ void GLSLWaveformRendererSignal::onSetup(const QDomNode& node) { } void GLSLWaveformRendererSignal::onSetTrack() { + if (m_loadedTrack) { + disconnect(m_loadedTrack.get(), SIGNAL(waveformUpdated()), + this, SLOT(slotWaveformUpdated())); + } + slotWaveformUpdated(); TrackPointer pTrack = m_waveformRenderer->getTrackInfo(); @@ -231,6 +236,8 @@ void GLSLWaveformRendererSignal::onSetTrack() { // uploaded to GPU. Otherwise, previous waveform will be shown. connect(pTrack.get(), SIGNAL(waveformUpdated()), this, SLOT(slotWaveformUpdated())); + + m_loadedTrack = pTrack; } void GLSLWaveformRendererSignal::onResize() { diff --git a/src/waveform/renderers/glslwaveformrenderersignal.h b/src/waveform/renderers/glslwaveformrenderersignal.h index 2923b3e9522e..a6475b44088d 100644 --- a/src/waveform/renderers/glslwaveformrenderersignal.h +++ b/src/waveform/renderers/glslwaveformrenderersignal.h @@ -5,6 +5,7 @@ #include #include +#include "track/track.h" #include "waveformrenderersignalbase.h" class GLSLWaveformRendererSignal : public QObject, public WaveformRendererSignalBase { @@ -35,6 +36,7 @@ class GLSLWaveformRendererSignal : public QObject, public WaveformRendererSignal GLint m_unitQuadListId; GLuint m_textureId; + TrackPointer m_loadedTrack; int m_loadedWaveform; //Frame buffer for two pass rendering