From 143571761f22ca743985273991920fbc76da6338 Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Thu, 8 Jun 2017 12:31:53 +0200 Subject: [PATCH] fixes sample muting bug for sampletrack (#3591) * fixes sample muting bug for sampletrack * simplify SampleTrack::updateTcos --- include/SampleTrack.h | 1 + src/tracks/SampleTrack.cpp | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/SampleTrack.h b/include/SampleTrack.h index 25841486c..6d39ed355 100644 --- a/include/SampleTrack.h +++ b/include/SampleTrack.h @@ -153,6 +153,7 @@ public: public slots: void updateTcos(); + void setPlayingTcos( bool isPlaying ); private: FloatModel m_volumeModel; diff --git a/src/tracks/SampleTrack.cpp b/src/tracks/SampleTrack.cpp index 8624497d4..45f587607 100644 --- a/src/tracks/SampleTrack.cpp +++ b/src/tracks/SampleTrack.cpp @@ -166,7 +166,8 @@ void SampleTCO::toggleRecord() void SampleTCO::playbackPositionChanged() { Engine::mixer()->removePlayHandlesOfTypes( getTrack(), PlayHandle::TypeSamplePlayHandle ); - m_isPlaying = false; + SampleTrack * st = dynamic_cast( getTrack() ); + st->setPlayingTcos( false ); } @@ -707,12 +708,21 @@ void SampleTrack::loadTrackSpecificSettings( const QDomElement & _this ) void SampleTrack::updateTcos() +{ + Engine::mixer()->removePlayHandlesOfTypes( this, PlayHandle::TypeSamplePlayHandle ); + setPlayingTcos( false ); +} + + + + +void SampleTrack::setPlayingTcos( bool isPlaying ) { for( int i = 0; i < numOfTCOs(); ++i ) { TrackContentObject * tco = getTCO( i ); SampleTCO * sTco = dynamic_cast( tco ); - sTco->playbackPositionChanged(); + sTco->setIsPlaying( isPlaying ); } }