diff --git a/plugins/TripleOscillator/TripleOscillator.cpp b/plugins/TripleOscillator/TripleOscillator.cpp index 3069c4b96..a6f03246e 100644 --- a/plugins/TripleOscillator/TripleOscillator.cpp +++ b/plugins/TripleOscillator/TripleOscillator.cpp @@ -144,12 +144,12 @@ OscillatorObject::OscillatorObject( Model * _parent, int _idx ) : void OscillatorObject::oscUserDefWaveDblClick() { QString af = gui::SampleLoader::openWaveformFile(); - auto buffer = gui::SampleLoader::createBufferFromFile(af); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&m_sampleBuffer, std::shared_ptr(std::move(buffer))); - - if( af != "" ) + if (af != "") { + auto buffer = gui::SampleLoader::createBufferFromFile(af); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&m_sampleBuffer, std::shared_ptr(std::move(buffer))); + // TODO: //m_usrWaveBtn->setToolTip(m_sampleBuffer->audioFile()); } @@ -291,9 +291,12 @@ void TripleOscillator::loadSettings( const QDomElement & _this ) m_osc[i]->m_useWaveTableModel.loadSettings( _this, "useWaveTable" + QString::number (i+1 ) ); - auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile" + is)); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&m_osc[i]->m_sampleBuffer, std::shared_ptr(std::move(buffer))); + if (!_this.attribute("userwavefile" + is).isEmpty()) + { + auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile" + is)); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&m_osc[i]->m_sampleBuffer, std::shared_ptr(std::move(buffer))); + } } } diff --git a/src/core/EnvelopeAndLfoParameters.cpp b/src/core/EnvelopeAndLfoParameters.cpp index 44957eb15..b64b24afb 100644 --- a/src/core/EnvelopeAndLfoParameters.cpp +++ b/src/core/EnvelopeAndLfoParameters.cpp @@ -389,9 +389,13 @@ void EnvelopeAndLfoParameters::loadSettings( const QDomElement & _this ) m_sustainModel.setValue( 1.0 - m_sustainModel.value() ); } - auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile")); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&m_userWave, std::shared_ptr(std::move(buffer))); + if (!_this.attribute("userwavefile").isEmpty()) + { + auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile")); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&m_userWave, std::shared_ptr(std::move(buffer))); + } + updateSampleVars(); } diff --git a/src/core/LfoController.cpp b/src/core/LfoController.cpp index a549f3a43..9580b7f27 100644 --- a/src/core/LfoController.cpp +++ b/src/core/LfoController.cpp @@ -213,9 +213,12 @@ void LfoController::loadSettings( const QDomElement & _this ) m_waveModel.loadSettings( _this, "wave" ); m_multiplierModel.loadSettings( _this, "multiplier" ); - auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile")); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&m_userDefSampleBuffer, std::shared_ptr(std::move(buffer))); + if (!_this.attribute("userwavefile").isEmpty()) + { + auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile")); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&m_userDefSampleBuffer, std::shared_ptr(std::move(buffer))); + } updateSampleFunction(); } diff --git a/src/gui/LfoControllerDialog.cpp b/src/gui/LfoControllerDialog.cpp index 5106e8b1f..f3549a1c0 100644 --- a/src/gui/LfoControllerDialog.cpp +++ b/src/gui/LfoControllerDialog.cpp @@ -213,13 +213,13 @@ void LfoControllerDialog::askUserDefWave() { auto sampleBuffer = dynamic_cast(this->model())->m_userDefSampleBuffer; QString fileName = SampleLoader::openWaveformFile(); - - auto buffer = SampleLoader::createBufferFromFile(fileName); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&sampleBuffer, std::shared_ptr(std::move(buffer))); - - if( fileName.isEmpty() == false ) + + if (!fileName.isEmpty()) { + auto buffer = SampleLoader::createBufferFromFile(fileName); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&sampleBuffer, std::shared_ptr(std::move(buffer))); + // TODO: m_userWaveBtn->setToolTip(sampleBuffer->audioFile()); } diff --git a/src/gui/instrument/EnvelopeAndLfoView.cpp b/src/gui/instrument/EnvelopeAndLfoView.cpp index dcf2decf0..db3ec5a82 100644 --- a/src/gui/instrument/EnvelopeAndLfoView.cpp +++ b/src/gui/instrument/EnvelopeAndLfoView.cpp @@ -323,9 +323,13 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de ) QString value = StringPairDrag::decodeValue( _de ); if( type == "samplefile" ) { - auto buffer = SampleLoader::createBufferFromFile(StringPairDrag::decodeValue(_de)); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&m_params->m_userWave, std::shared_ptr(std::move(buffer))); + if (!value.isEmpty()) + { + auto buffer = SampleLoader::createBufferFromFile(value); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&m_params->m_userWave, std::shared_ptr(std::move(buffer))); + } + m_userLfoBtn->model()->setValue( true ); m_params->m_lfoWaveModel.setValue(static_cast(EnvelopeAndLfoParameters::LfoShape::UserDefinedWave)); _de->accept(); @@ -337,9 +341,14 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de ) auto file = dataFile.content(). firstChildElement().firstChildElement(). firstChildElement().attribute("src"); - auto buffer = SampleLoader::createBufferFromFile(file); - // TODO C++20: Deprecated, use std::atomic instead - std::atomic_store(&m_params->m_userWave, std::shared_ptr(std::move(buffer))); + + if (!file.isEmpty()) + { + auto buffer = SampleLoader::createBufferFromFile(file); + // TODO C++20: Deprecated, use std::atomic instead + std::atomic_store(&m_params->m_userWave, std::shared_ptr(std::move(buffer))); + } + m_userLfoBtn->model()->setValue( true ); m_params->m_lfoWaveModel.setValue(static_cast(EnvelopeAndLfoParameters::LfoShape::UserDefinedWave)); _de->accept();