SessionState class

The representation of the current local state of a client in a Link Session.

A session state represents a timeline and the start/stop state. The timeline is a representation of a mapping between time and beats for varying quanta. The start/stop state represents the user intention to start or stop transport at a specific time. Start stop synchronization is an optional feature that allows to share the user request to start or stop transport between a subgroup of peers in a Link session. When observing a change of start/stop state, audio playback of a peer should be started or stopped the same way it would have happened if the user had requested that change at the according time locally. The start/stop state can only be changed by the user. This means that the current local start/stop state persists when joining or leaving a Link session. After joining a Link session start/stop change requests will be communicated to all connected peers.

Implemented types

Constructors

SessionState.create()
Create a new session_state instance.
factory

Properties

destroyed bool
Returns true if the contained abl_link_session_state C++ Object has been disposed of in memory with destroy. This should not be needed as NativeFinalizer cleans up the underlying memory automatically when the SessionState instance becomes inaccessible.
no setter
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

beatAtTime(int time, double quantum) double
Get the beat value corresponding to the given time for the given quantum.
destroy() → void
Manually delete the C++ representation of the abl_link_session_state instance contained in this object. Renders this instance unusable. This should not be needed as NativeFinalizer cleans up the underlying memory automatically when the SessionState instance becomes inaccessible.
forceBeatAtTime(double beat, int time, double quantum) → void
Rudely re-map the beat/time relationship for all peers in a session.
isPlaying() bool
Is transport playing?
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
phaseAtTime(int time, double quantum) double
Get the session phase at the given time for the given quantum.
requestBeatAtStartPlayingTime(double beat, double quantum) → void
Convenience function to attempt to map the given beat to the time when transport is starting to play in context of the given quantum. This function evaluates to a no-op if isPlaying equals false.
requestBeatAtTime(double beat, int time, double quantum) → void
Attempt to map the given beat to the given time in the context of the given quantum.
setIsPlaying(bool isPlaying, int time) → void
Set if transport should be playing or stopped, taking effect at the given time.
setIsPlayingAndRequestBeatAtTime(bool isPlaying, int time, double beat, double quantum) → void
Convenience function to start or stop transport at a given time and attempt to map the given beat to this time in context of the given quantum.
setTempo(double bpm, int atTime) → void
Set the timeline tempo to the given bpm value, taking effect at the given time.
tempo() double
The tempo of the timeline, in Beats Per Minute.
timeAtBeat(double beat, double quantum) int
Get the time at which the given beat occurs for the given quantum.
timeForisPlaying() int
Get the time at which a transport start/stop occurs
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited