12#ifndef __AUDACITY_AUDIO_IO_EXT__
13#define __AUDACITY_AUDIO_IO_EXT__
23struct PaStreamCallbackTimeInfo;
46 const PaStreamCallbackTimeInfo *timeInfo,
47 unsigned long framesPerBuffer) = 0;
53 const PaStreamInfo* info,
double startTime,
double rate) = 0;
56 double rate,
unsigned long pauseFrames,
bool paused,
bool hasSolo) = 0;
Abstract interface to alternative, concurrent playback with the main audio (such as MIDI events)
virtual void AbortOtherStream()=0
std::vector< AudioIOExt::Factory > Factories
virtual unsigned CountOtherSolo() const =0
virtual void StopOtherStream()=0
std::function< std::unique_ptr< AudioIOExt >(const PlaybackSchedule &) > Factory
virtual void ComputeOtherTimings(double rate, bool paused, const PaStreamCallbackTimeInfo *timeInfo, unsigned long framesPerBuffer)=0
virtual void FillOtherBuffers(double rate, unsigned long pauseFrames, bool paused, bool hasSolo)=0
virtual bool StartOtherStream(const TransportSequences &tracks, const PaStreamInfo *info, double startTime, double rate)=0
virtual void SignalOtherCompletion()=0
Typically statically constructed.