From 13595620cf81a0d42fc7d887d0fa600875daeefb Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Wed, 30 Mar 2016 23:24:39 -0400 Subject: [PATCH] Fix mac build --- src/Menus.cpp | 5 ++--- src/Mix.cpp | 16 ++++++++-------- src/Mix.h | 9 +++------ src/effects/Effect.cpp | 5 ++--- 4 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/Menus.cpp b/src/Menus.cpp index eab20f4ac..e60fe4d7d 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -5605,9 +5605,8 @@ void AudacityProject::HandleMixAndRender(bool toNewTrack) { wxGetApp().SetMissingAliasedFileWarningShouldShow(true); - auto results = - ::MixAndRender(mTracks, mTrackFactory, mRate, mDefaultFormat, 0.0, 0.0); - auto &uNewLeft = results.first, &uNewRight = results.second; + WaveTrack::Holder uNewLeft, uNewRight; + MixAndRender(mTracks, mTrackFactory, mRate, mDefaultFormat, 0.0, 0.0, uNewLeft, uNewRight); if (uNewLeft) { // Remove originals, get stats on what tracks were mixed diff --git a/src/Mix.cpp b/src/Mix.cpp index 94d64244f..ec22bb2aa 100644 --- a/src/Mix.cpp +++ b/src/Mix.cpp @@ -43,11 +43,13 @@ #include "float_cast.h" //TODO-MB: wouldn't it make more sense to DELETE the time track after 'mix and render'? -std::pair -MixAndRender(TrackList *tracks, TrackFactory *trackFactory, +void MixAndRender(TrackList *tracks, TrackFactory *trackFactory, double rate, sampleFormat format, - double startTime, double endTime) + double startTime, double endTime, + WaveTrack::Holder &uLeft, WaveTrack::Holder &uRight) { + uLeft.reset(), uRight.reset(); + // This function was formerly known as "Quick Mix". Track *t; bool mono = false; /* flag if output can be mono without loosing anything*/ @@ -197,13 +199,11 @@ MixAndRender(TrackList *tracks, TrackFactory *trackFactory, mixRight->Flush(); if (updateResult == eProgressCancelled || updateResult == eProgressFailed) { - return{}; + return; } else { - return std::make_pair( - std::move(mixLeft), - std::move(mixRight) - ); + uLeft = std::move(mixLeft), + uRight = std::move(mixRight); #if 0 int elapsedMS = wxGetElapsedTime(); double elapsedTime = elapsedMS * 0.001; diff --git a/src/Mix.h b/src/Mix.h index 585080427..e50481def 100644 --- a/src/Mix.h +++ b/src/Mix.h @@ -13,7 +13,6 @@ #define __AUDACITY_MIX__ #include "MemoryX.h" -#include #include #include "SampleFormat.h" @@ -38,12 +37,10 @@ class WaveTrackConstArray; * no explicit time range to process, and the whole occupied length of the * input tracks is processed. */ -std::pair< - std::unique_ptr, - std::unique_ptr -> MixAndRender(TrackList * tracks, TrackFactory *factory, +void MixAndRender(TrackList * tracks, TrackFactory *factory, double rate, sampleFormat format, - double startTime, double endTime); + double startTime, double endTime, + std::unique_ptr &uLeft, std::unique_ptr &uRight); void MixBuffers(int numChannels, int *channelFlags, float *gains, samplePtr src, diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp index 0683ebb0d..f65764db5 100644 --- a/src/effects/Effect.cpp +++ b/src/effects/Effect.cpp @@ -2569,9 +2569,8 @@ void Effect::Preview(bool dryOnly) // Linear Effect preview optimised by pre-mixing to one track. // Generators need to generate per track. if (mIsLinearEffect && !isGenerator) { - auto results = ::MixAndRender(saveTracks, mFactory, rate, floatSample, mT0, t1); - auto &mixLeft = results.first; - auto &mixRight = results.second; + WaveTrack::Holder mixLeft, mixRight; + MixAndRender(saveTracks, mFactory, rate, floatSample, mT0, t1, mixLeft, mixRight); if (!mixLeft) { delete mTracks; mTracks = saveTracks;