Remove use of atomic_store and atomic_load

This commit is contained in:
sakertooth
2023-09-26 13:15:50 -04:00
parent 8e41e4cf4f
commit 7d87637679
9 changed files with 25 additions and 59 deletions

View File

@@ -65,8 +65,7 @@ public:
std::shared_ptr<Sample> sample()
{
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
return std::atomic_load(&m_sample);
return m_sample;
}
TimePos sampleLength() const;

View File

@@ -165,8 +165,7 @@ void AudioFileProcessor::playNote( NotePlayHandle * _n,
if( ! _n->isFinished() )
{
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
if (std::atomic_load(&m_sample)->play(_working_buffer + offset,
if (m_sample->play(_working_buffer + offset,
static_cast<Sample::PlaybackState*>(_n->m_pluginData),
frames, _n->frequency(),
static_cast<Sample::Loop>(m_loopModel.value())))
@@ -237,9 +236,7 @@ void AudioFileProcessor::loadSettings(const QDomElement& elem)
}
else if (!elem.attribute("sampledata").isEmpty())
{
auto buffer = gui::SampleLoader::createBufferFromBase64(elem.attribute("srcdata"));
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_sample, std::make_shared<Sample>(std::move(buffer)));
m_sample = std::make_shared<Sample>(gui::SampleLoader::createBufferFromBase64(elem.attribute("srcdata")));
}
m_loopModel.loadSettings(elem, "looped");
@@ -327,10 +324,7 @@ void AudioFileProcessor::setAudioFile( const QString & _audio_file,
}
// else we don't touch the track-name, because the user named it self
auto buffer = gui::SampleLoader::createBufferFromFile(_audio_file);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_sample, std::make_shared<Sample>(std::move(buffer)));
m_sample = std::make_shared<Sample>(gui::SampleLoader::createBufferFromFile(_audio_file));
loopPointChanged();
emit sampleUpdated();
}

View File

@@ -146,9 +146,7 @@ void OscillatorObject::oscUserDefWaveDblClick()
QString af = gui::SampleLoader::openWaveformFile();
if (af != "")
{
auto buffer = gui::SampleLoader::createBufferFromFile(af);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_sampleBuffer, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
m_sampleBuffer = gui::SampleLoader::createBufferFromFile(af);
// TODO:
//m_usrWaveBtn->setToolTip(m_sampleBuffer->audioFile());
@@ -262,8 +260,7 @@ void TripleOscillator::saveSettings( QDomDocument & _doc, QDomElement & _this )
"modalgo" + QString::number( i+1 ) );
m_osc[i]->m_useWaveTableModel.saveSettings( _doc, _this,
"useWaveTable" + QString::number (i+1 ) );
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
_this.setAttribute("userwavefile" + is, std::atomic_load(&m_osc[i]->m_sampleBuffer)->audioFile());
_this.setAttribute("userwavefile" + is, m_osc[i]->m_sampleBuffer->audioFile());
}
}
@@ -293,9 +290,7 @@ void TripleOscillator::loadSettings( const QDomElement & _this )
if (!_this.attribute("userwavefile" + is).isEmpty())
{
auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile" + is));
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_osc[i]->m_sampleBuffer, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
m_osc[i]->m_sampleBuffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile" + is));
}
}
}
@@ -363,10 +358,8 @@ void TripleOscillator::playNote( NotePlayHandle * _n,
oscs_r[i + 1] );
oscs_r[i]->setUseWaveTable(m_osc[i]->m_useWaveTable);
}
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
oscs_l[i]->setUserWave(std::atomic_load(&m_osc[i]->m_sampleBuffer));
oscs_r[i]->setUserWave(std::atomic_load(&m_osc[i]->m_sampleBuffer));
oscs_l[i]->setUserWave(m_osc[i]->m_sampleBuffer);
oscs_r[i]->setUserWave(m_osc[i]->m_sampleBuffer);
}

View File

@@ -222,7 +222,7 @@ inline sample_t EnvelopeAndLfoParameters::lfoShapeSample( fpp_t _frame_offset )
shape_sample = Oscillator::sawSample( phase );
break;
case LfoShape::UserDefinedWave:
shape_sample = Oscillator::userWaveSample(std::atomic_load(&m_userWave).get(), phase);
shape_sample = Oscillator::userWaveSample(m_userWave.get(), phase);
break;
case LfoShape::RandomWave:
if( frame == 0 )
@@ -355,9 +355,7 @@ void EnvelopeAndLfoParameters::saveSettings( QDomDocument & _doc,
m_lfoAmountModel.saveSettings( _doc, _parent, "lamt" );
m_x100Model.saveSettings( _doc, _parent, "x100" );
m_controlEnvAmountModel.saveSettings( _doc, _parent, "ctlenvamt" );
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
_parent.setAttribute("userwavefile", std::atomic_load(&m_userWave)->audioFile());
_parent.setAttribute("userwavefile", m_userWave->audioFile());
}
@@ -391,9 +389,7 @@ void EnvelopeAndLfoParameters::loadSettings( const QDomElement & _this )
if (!_this.attribute("userwavefile").isEmpty())
{
auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile"));
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_userWave, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
m_userWave = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile"));
}
updateSampleVars();

View File

@@ -122,7 +122,7 @@ void LfoController::updateValueBuffer()
}
case Oscillator::WaveShape::UserDefined:
{
currentSample = Oscillator::userWaveSample(std::atomic_load(&m_userDefSampleBuffer).get(), phase);
currentSample = Oscillator::userWaveSample(m_userDefSampleBuffer.get(), phase);
break;
}
default:
@@ -222,8 +222,7 @@ void LfoController::saveSettings( QDomDocument & _doc, QDomElement & _this )
m_phaseModel.saveSettings( _doc, _this, "phase" );
m_waveModel.saveSettings( _doc, _this, "wave" );
m_multiplierModel.saveSettings( _doc, _this, "multiplier" );
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
_this.setAttribute("userwavefile", std::atomic_load(&m_userDefSampleBuffer)->audioFile());
_this.setAttribute("userwavefile", m_userDefSampleBuffer->audioFile());
}
@@ -241,9 +240,7 @@ void LfoController::loadSettings( const QDomElement & _this )
if (!_this.attribute("userwavefile").isEmpty())
{
auto buffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile"));
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_userDefSampleBuffer, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
m_userDefSampleBuffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile"));
}
updateSampleFunction();

View File

@@ -814,8 +814,7 @@ inline sample_t Oscillator::getSample<Oscillator::WaveShape::UserDefined>(
}
else
{
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
return userWaveSample(std::atomic_load(&m_userWave).get(), _sample);
return userWaveSample(m_userWave.get(), _sample);
}
}

View File

@@ -90,8 +90,7 @@ SampleClip::SampleClip( Track * _track ) :
SampleClip::SampleClip(const SampleClip& orig) :
SampleClip(orig.getTrack())
{
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_sample, orig.m_sample);
m_sample = orig.m_sample;
m_isPlaying = orig.m_isPlaying;
}
@@ -125,9 +124,7 @@ const QString& SampleClip::sampleFile() const
void SampleClip::setSampleBuffer(std::unique_ptr<SampleBuffer> sb)
{
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
auto buffer = std::shared_ptr<const SampleBuffer>(std::move(sb));
std::atomic_store(&m_sample, std::make_shared<Sample>(buffer));
m_sample = std::make_shared<Sample>(std::shared_ptr<const SampleBuffer>(std::move(sb)));
updateLength();
emit sampleChanged();
@@ -142,9 +139,7 @@ void SampleClip::setSampleFile(const QString & sf)
if (!sf.isEmpty())
{
//Otherwise set it to the sample's length
auto buffer = gui::SampleLoader::createBufferFromFile(sf);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_sample, std::make_shared<Sample>(std::move(buffer)));
m_sample = std::make_shared<Sample>(gui::SampleLoader::createBufferFromFile(sf));
length = sampleLength();
}
@@ -293,8 +288,7 @@ void SampleClip::loadSettings( const QDomElement & _this )
Engine::audioEngine()->processingSampleRate();
auto buffer = gui::SampleLoader::createBufferFromBase64(_this.attribute("data"), sampleRate);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_sample, std::make_shared<Sample>(std::move(buffer)));
m_sample = std::make_shared<Sample>(std::move(buffer));
}
changeLength( _this.attribute( "len" ).toInt() );
setMuted( _this.attribute( "muted" ).toInt() );

View File

@@ -216,9 +216,7 @@ void LfoControllerDialog::askUserDefWave()
if (!fileName.isEmpty())
{
auto buffer = SampleLoader::createBufferFromFile(fileName);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&sampleBuffer, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
sampleBuffer = SampleLoader::createBufferFromFile(fileName);
// TODO:
m_userWaveBtn->setToolTip(sampleBuffer->audioFile());

View File

@@ -325,9 +325,7 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de )
{
if (!value.isEmpty())
{
auto buffer = SampleLoader::createBufferFromFile(value);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_params->m_userWave, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
m_params->m_userWave = SampleLoader::createBufferFromFile(value);
}
m_userLfoBtn->model()->setValue( true );
@@ -345,8 +343,7 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de )
if (!file.isEmpty())
{
auto buffer = SampleLoader::createBufferFromFile(file);
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
std::atomic_store(&m_params->m_userWave, std::shared_ptr<const SampleBuffer>(std::move(buffer)));
m_params->m_userWave = std::shared_ptr<const SampleBuffer>(std::move(buffer));
}
m_userLfoBtn->model()->setValue( true );
@@ -495,8 +492,7 @@ void EnvelopeAndLfoView::paintEvent( QPaintEvent * )
val = m_randomGraph;
break;
case EnvelopeAndLfoParameters::LfoShape::UserDefinedWave:
// TODO C++20: Deprecated, use std::atomic<std::shared_ptr> instead
val = Oscillator::userWaveSample(std::atomic_load(&m_params->m_userWave).get(), phase);
val = Oscillator::userWaveSample(m_params->m_userWave.get(), phase);
break;
}
if( static_cast<f_cnt_t>( cur_sample ) <=
@@ -547,4 +543,4 @@ void EnvelopeAndLfoView::lfoUserWaveChanged()
} // namespace gui
} // namespace lmms
} // namespace lmms