Skip to content

Commit e0067d5

Browse files
committed
Fix crash if stereo mixing was interrupted
1 parent f7af870 commit e0067d5

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,9 @@ void WaveTrackMenuTable::OnMergeStereo(wxCommandEvent &)
808808
(WaveChannelView::GetFirst(*left).GetHeight() +
809809
WaveChannelView::GetFirst(*right).GetHeight()) / 2;
810810

811+
double origPanLeft = left->GetPan();
812+
double origPanRight = right->GetPan();
813+
811814
left->SetPan(-1.0f);
812815
right->SetPan(1.0f);
813816
auto mix = MixAndRender(
@@ -824,6 +827,13 @@ void WaveTrackMenuTable::OnMergeStereo(wxCommandEvent &)
824827
std::max(left->GetSampleFormat(), right->GetSampleFormat()),
825828
0.0, 0.0);
826829

830+
if (!mix)
831+
{
832+
left->SetPan(origPanLeft);
833+
right->SetPan(origPanRight);
834+
return;
835+
}
836+
827837
tracks.Insert(*first, mix);
828838
tracks.Remove(*left);
829839
tracks.Remove(*right);

0 commit comments

Comments
 (0)