Fix mac build

This commit is contained in:
Paul Licameli 2016-03-30 23:24:39 -04:00
parent 7e83d70350
commit 13595620cf
4 changed files with 15 additions and 20 deletions

View File

@ -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

View File

@ -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<WaveTrack::Holder, WaveTrack::Holder>
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;

View File

@ -13,7 +13,6 @@
#define __AUDACITY_MIX__
#include "MemoryX.h"
#include <utility>
#include <wx/string.h>
#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<WaveTrack>,
std::unique_ptr<WaveTrack>
> 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<WaveTrack> &uLeft, std::unique_ptr<WaveTrack> &uRight);
void MixBuffers(int numChannels, int *channelFlags, float *gains,
samplePtr src,

View File

@ -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;