11#if TRACKTION_ENABLE_ABLETON_LINK && JUCE_IOS
15namespace tracktion {
inline namespace engine
35 #if TRACKTION_ENABLE_ABLETON_LINK && JUCE_IOS
36 ABLLink* getLinkInstanceForIOS();
153 friend struct LinkImpl;
Manages an Ableton Link session connecting an Edit with a number of networked peers,...
void setCustomOffset(int offsetMs)
Use to offset the calculations by some amount (on top of device latency).
double getChaseProportion() const
Returns how much chasing playback is doing.
double getBeatsUntilNextCycle(double quantum) const
Number of beats until the next bar (quantum) - e.g.
void requestTempoChange(double newBpm)
Request the Link session to change tempo.
~AbletonLink()
Destructor.
double getBarPhase() const
Returns how far though the current bar the Link clock is.
size_t getNumPeers() const
Returns the number of connected peers.
double getSessionTempo() const
Get the current session tempo.
bool isPlaying() const
Returns whether the Link transport is currently playing.
bool isConnected() const
Is Link connected to any other peers?
bool isEnabled() const
Is Link enabled? It may not be connected to any peers even if it is.
void addListener(Listener *)
Adds a listener.
void setEnabled(bool isEnabled)
On iOS you need this to instantiate an ABLLinkSettingsViewController.
void removeListener(Listener *)
Removes a previously added listener.
void requestStartStopChange(bool isPlaying)
Request the Link session to start or stop playing.
void enableStartStopSync(bool enable)
Sets whether start/stop is syncronsied.
bool isStartStopSyncEnabled() const
Returns whether start/stop is syncronsied.
void setTempoConstraint(juce::Range< double > minMaxTempo)
Once set, tempos chnages from link are transparently divided or multiplied by 2 to stay within this r...
Controls the transport of an Edit's playback.
Represents a duration in beats.
Represents a position in real-life time.
When Link is on, you shouldn't set the tempo directly.
virtual void linkRequestedTempoChange(double newBpm)=0
Called by link to request that tracktion changes its tempo.
virtual void linkRequestedPositionChange(BeatDuration adjustment)=0
Should be implemented to perform a larger beat position change.
virtual void linkRequestedStartStopChange(bool isPlaying)=0
Called by link to request that tracktion starts or stops its tempo.
virtual ~Listener()=default
Destructor.
virtual void linkConnectionChanged()=0
Called by Link when the number of peer connections changes.