From fa118ff6082fe96f931986c537efbc3efcbb4ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nino=20Mi=C5=A1ki=C4=87-Pletenac?= Date: Sat, 1 Jul 2017 13:54:00 +0200 Subject: [PATCH 1/2] Add missing initialization of AnalysisDao in TrackCollection --- src/library/trackcollection.cpp | 1 + 1 file changed, 1 insertion(+) 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); } From 65ca69c15f8b832b14df741cf869864027889404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nino=20Mi=C5=A1ki=C4=87-Pletenac?= Date: Sat, 1 Jul 2017 14:00:45 +0200 Subject: [PATCH 2/2] Disconnect waveformUpdated() signal from GLSLWaveformRendererSignal when loading new track --- src/waveform/renderers/glslwaveformrenderersignal.cpp | 7 +++++++ src/waveform/renderers/glslwaveformrenderersignal.h | 2 ++ 2 files changed, 9 insertions(+) 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