From 2bfd19cc44852dff6e8a56cb81c9e1823895f8af Mon Sep 17 00:00:00 2001 From: Vesa Date: Wed, 9 Apr 2014 13:30:17 +0300 Subject: [PATCH] Move waveform generation away from main --- include/BandLimitedWave.h | 2 ++ plugins/monstro/Monstro.cpp | 4 ++++ src/core/BandLimitedWave.cpp | 7 ++++++- src/core/main.cpp | 4 ---- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/include/BandLimitedWave.h b/include/BandLimitedWave.h index b4ef306f1..fdb33b23a 100644 --- a/include/BandLimitedWave.h +++ b/include/BandLimitedWave.h @@ -174,6 +174,8 @@ public: static void generateWaves(); + + static bool s_wavesGenerated; static WaveMipMap s_waveforms [NumBLWaveforms]; }; diff --git a/plugins/monstro/Monstro.cpp b/plugins/monstro/Monstro.cpp index 644bf3168..7ca7477d4 100644 --- a/plugins/monstro/Monstro.cpp +++ b/plugins/monstro/Monstro.cpp @@ -1026,6 +1026,10 @@ MonstroInstrument::MonstroInstrument( InstrumentTrack * _instrument_track ) : m_sub3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Sub3-LFO2" ) ) { +// make sure the wavetables exist: +// generate bandlimited wavetables + BandLimitedWave::generateWaves(); + // setup waveboxes setwavemodel( m_osc2Wave ) setwavemodel( m_osc3Wave1 ) diff --git a/src/core/BandLimitedWave.cpp b/src/core/BandLimitedWave.cpp index 92b438a01..55214765f 100644 --- a/src/core/BandLimitedWave.cpp +++ b/src/core/BandLimitedWave.cpp @@ -27,10 +27,13 @@ WaveMipMap BandLimitedWave::s_waveforms[4] = { }; - +bool BandLimitedWave::s_wavesGenerated = false; void BandLimitedWave::generateWaves() { +// don't generate if they already exist + if( s_wavesGenerated ) return; + int i; // saw wave - BLSaw @@ -144,4 +147,6 @@ void BandLimitedWave::generateWaves() } } + s_wavesGenerated = true; + } diff --git a/src/core/main.cpp b/src/core/main.cpp index 646b25713..fbf7f9507 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -65,7 +65,6 @@ #include "ProjectRenderer.h" #include "DataFile.h" #include "song.h" -#include "BandLimitedWave.h" static inline QString baseName( const QString & _file ) { @@ -120,9 +119,6 @@ int main( int argc, char * * argv ) new QCoreApplication( argc, argv ) : new QApplication( argc, argv ) ; - // generate bandlimited wavetables for instruments to use - BandLimitedWave::generateWaves(); - Mixer::qualitySettings qs( Mixer::qualitySettings::Mode_HighQuality ); ProjectRenderer::OutputSettings os( 44100, false, 160, ProjectRenderer::Depth_16Bit );