25 double stopTime,
unsigned numOutChannels,
size_t outBufferSize,
26 bool outInterleaved,
double outRate,
sampleFormat outFormat,
37 assert(masterEffectStages.empty() || (numOutChannels <= 2 && mixerSpec ==
nullptr));
39 return std::make_unique<Mixer>(
40 std::move(inputs), std::move(masterEffectStages),
43 numOutChannels, outBufferSize, outInterleaved, outRate, outFormat,
true,
52 const auto duration = t1 - t0;
std::vector< MixerOptions::StageSpecification > GetMasterEffectStages(const AudacityProject &project)
std::vector< MixerOptions::StageSpecification > GetEffectStages(const WaveTrack &track)
declares abstract base class Track, TrackList, and iterators over TrackList
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
static ExportResult UpdateProgress(ExportProcessorDelegate &delegate, Mixer &mixer, double t0, double t1)
Sends progress update to delegate and retrieves state update from it. Typically used inside each expo...
static std::unique_ptr< Mixer > CreateMixer(const AudacityProject &project, bool selectionOnly, double startTime, double stopTime, unsigned numOutChannels, size_t outBufferSize, bool outInterleaved, double outRate, sampleFormat outFormat, MixerOptions::Downmix *mixerSpec)
virtual bool IsCancelled() const =0
virtual void OnProgress(double progress)=0
virtual bool IsStopped() const =0
static TrackIterRange< const WaveTrack > FindExportWaveTracks(const TrackList &tracks, bool selectedOnly)
Functions for doing the mixdown of the tracks.
std::vector< Input > Inputs
double MixGetCurrentTime()
Current time in seconds (unwarped, i.e. always between startTime and stopTime)
A matrix of booleans, one row per input channel, column per output.
static std::shared_ptr< StretchingSequence > Create(const PlayableSequence &, const ClipConstHolders &clips)
static TrackList & Get(AudacityProject &project)
double EvalExportProgress(Mixer &mixer, double t0, double t1)
Immutable structure is an argument to Mixer's constructor.