From 5489040f2097dae4b6c102856d38b4c891964f98 Mon Sep 17 00:00:00 2001 From: M374LX Date: Wed, 30 Sep 2015 22:38:10 -0300 Subject: [PATCH 1/2] Partially decouple Mixer from VisualizationWidget --- include/Mixer.h | 7 +------ include/VisualizationWidget.h | 2 +- src/core/Mixer.cpp | 2 +- src/gui/widgets/VisualizationWidget.cpp | 14 ++++++-------- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/include/Mixer.h b/include/Mixer.h index e46cbabe4..fb4871cfa 100644 --- a/include/Mixer.h +++ b/include/Mixer.h @@ -231,11 +231,6 @@ public: return m_framesPerPeriod; } - inline const surroundSampleFrame * currentReadBuffer() const - { - return m_readBuf; - } - MixerProfiler& profiler() { @@ -362,7 +357,7 @@ public: signals: void qualitySettingsChanged(); void sampleRateChanged(); - void nextAudioBuffer(); + void nextAudioBuffer( const surroundSampleFrame * buffer ); private: diff --git a/include/VisualizationWidget.h b/include/VisualizationWidget.h index 12922ffc6..5bc25c43d 100644 --- a/include/VisualizationWidget.h +++ b/include/VisualizationWidget.h @@ -54,7 +54,7 @@ protected: protected slots: - void updateAudioBuffer(); + void updateAudioBuffer( const surroundSampleFrame * buffer ); private: diff --git a/src/core/Mixer.cpp b/src/core/Mixer.cpp index e168d195b..1e30ef8a9 100644 --- a/src/core/Mixer.cpp +++ b/src/core/Mixer.cpp @@ -447,7 +447,7 @@ const surroundSampleFrame * Mixer::renderNextBuffer() unlock(); - emit nextAudioBuffer(); + emit nextAudioBuffer( m_readBuf ); // and trigger LFOs EnvelopeAndLfoParameters::instances()->trigger(); diff --git a/src/gui/widgets/VisualizationWidget.cpp b/src/gui/widgets/VisualizationWidget.cpp index 734defc68..bcba54def 100644 --- a/src/gui/widgets/VisualizationWidget.cpp +++ b/src/gui/widgets/VisualizationWidget.cpp @@ -72,14 +72,12 @@ VisualizationWidget::~VisualizationWidget() -void VisualizationWidget::updateAudioBuffer() +void VisualizationWidget::updateAudioBuffer( const surroundSampleFrame * buffer ) { if( !Engine::getSong()->isExporting() ) { - const surroundSampleFrame * c = Engine::mixer()-> - currentReadBuffer(); const fpp_t fpp = Engine::mixer()->framesPerPeriod(); - memcpy( m_buffer, c, sizeof( surroundSampleFrame ) * fpp ); + memcpy( m_buffer, buffer, sizeof( surroundSampleFrame ) * fpp ); } } @@ -95,8 +93,8 @@ void VisualizationWidget::setActive( bool _active ) SIGNAL( periodicUpdate() ), this, SLOT( update() ) ); connect( Engine::mixer(), - SIGNAL( nextAudioBuffer() ), - this, SLOT( updateAudioBuffer() ) ); + SIGNAL( nextAudioBuffer( const surroundSampleFrame* ) ), + this, SLOT( updateAudioBuffer( const surroundSampleFrame* ) ) ); } else { @@ -104,8 +102,8 @@ void VisualizationWidget::setActive( bool _active ) SIGNAL( periodicUpdate() ), this, SLOT( update() ) ); disconnect( Engine::mixer(), - SIGNAL( nextAudioBuffer() ), - this, SLOT( updateAudioBuffer() ) ); + SIGNAL( nextAudioBuffer( const surroundSampleFrame* ) ), + this, SLOT( updateAudioBuffer( const surroundSampleFrame* ) ) ); // we have to update (remove last waves), // because timer doesn't do that anymore update(); From 12e2da9b447379cf1496b4ffca5cb4cade35e281 Mon Sep 17 00:00:00 2001 From: M374LX Date: Wed, 30 Sep 2015 22:58:44 -0300 Subject: [PATCH 2/2] Remove unused Mixer::m_workingBuf --- include/Mixer.h | 2 -- src/core/Mixer.cpp | 5 ----- 2 files changed, 7 deletions(-) diff --git a/include/Mixer.h b/include/Mixer.h index fb4871cfa..146bd5af8 100644 --- a/include/Mixer.h +++ b/include/Mixer.h @@ -400,8 +400,6 @@ private: fpp_t m_framesPerPeriod; - sampleFrame * m_workingBuf; - sampleFrame * m_inputBuffer[2]; f_cnt_t m_inputBufferFrames[2]; f_cnt_t m_inputBufferSize[2]; diff --git a/src/core/Mixer.cpp b/src/core/Mixer.cpp index 1e30ef8a9..6b1753c2a 100644 --- a/src/core/Mixer.cpp +++ b/src/core/Mixer.cpp @@ -61,7 +61,6 @@ Mixer::Mixer( bool renderOnly ) : m_framesPerPeriod( DEFAULT_BUFFER_SIZE ), - m_workingBuf( NULL ), m_inputBufferRead( 0 ), m_inputBufferWrite( 1 ), m_readBuf( NULL ), @@ -119,8 +118,6 @@ Mixer::Mixer( bool renderOnly ) : // now that framesPerPeriod is fixed initialize global BufferManager BufferManager::init( m_framesPerPeriod ); - m_workingBuf = (sampleFrame*) MemoryHelper::alignedMalloc( m_framesPerPeriod * - sizeof( sampleFrame ) ); for( int i = 0; i < 3; i++ ) { m_readBuf = (surroundSampleFrame*) @@ -177,8 +174,6 @@ Mixer::~Mixer() MemoryHelper::alignedFree( m_bufferPool[i] ); } - MemoryHelper::alignedFree( m_workingBuf ); - for( int i = 0; i < 2; ++i ) { delete[] m_inputBuffer[i];