NativeTimelineFacade

Properties

Link copied to clipboard
open override val addresses: ProjectAddressBook

Translation between persistent document identities and runtime indexes.

Link copied to clipboard
open override val commands: ProjectCommands

The undoable edits this project supports.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val trackCount: UInt
Link copied to clipboard
open override val undoEngine: UndoEngine

Functions

Link copied to clipboard
open override fun addAudioClip(trackIndex: Int, position: TimelinePosition, reader: AudioFileReader, filepath: String): ClipAddResult
Link copied to clipboard
open override fun addEmptyTrack(origin: MutationOrigin = MutationOrigin.User, callback: (Int, String?) -> Unit)
Link copied to clipboard
open override fun addMidiClipFromFile(trackIndex: Int, position: TimelinePosition, filepath: String, nrpnToParameterMapping: Boolean = false): ClipAddResult
Link copied to clipboard
open override fun attachClipFragment(trackIndex: Int, fragment: ClipFragment, idPolicy: ObjectIdPolicy): ClipAddResult
Link copied to clipboard
open override fun attachTrackFragment(fragment: TrackFragment, options: TrackAttachOptions, callback: (Int, String?) -> Unit)
Link copied to clipboard
Link copied to clipboard
open override fun captureClipFragment(trackIndex: Int, clipId: Int): ClipFragment?

Capture is non-destructive; deleting is a separate removeClip. Must NOT be called inside a documentTransaction. The returned fragment is owned by the caller.

Link copied to clipboard
open override fun captureTrackFragment(trackIndex: Int, callback: (TrackFragment?, String?) -> Unit)

Both halves are asynchronous because a track owns live plug-in instances. The callback runs exactly once, on the thread completing the last plug-in operation. Capture must NOT be called inside a documentTransaction.

Link copied to clipboard
open override fun clearClipsFromTrack(trackIndex: Int, origin: MutationOrigin = MutationOrigin.User): Boolean

Removes every clip on the track. True when at least one was removed.

Link copied to clipboard
open override fun <T> documentTransaction(block: () -> T): T

Groups the document events produced by everything inside block into a single batch. Use whenever one user-visible action performs several mutations, or observers can see it half-applied. Calls nest.

Link copied to clipboard
open override fun getMidiClipNotes(trackIndex: Int, clipId: Int): List<MidiNoteData>?

Returns MIDI notes for the given clip, or null if the track/clip is not found or is not a MIDI clip. Empty list means a valid MIDI clip with no notes.

Link copied to clipboard
open override fun getState(): TimelineState?
Link copied to clipboard
open override fun getTrack(index: UInt): TimelineTrack
Link copied to clipboard
open override fun isClipEnabled(trackIndex: Int, clipId: Int): Boolean
Link copied to clipboard
open override fun loadPluginPreset(instanceId: Int, presetIndex: Int, origin: MutationOrigin = MutationOrigin.User, completion: (UndoResult) -> Unit? = null)
Link copied to clipboard
open override fun loadProject(filePath: String): ProjectResult
Link copied to clipboard
open override fun recordPluginInstanceAddition(instanceId: Int, origin: MutationOrigin = MutationOrigin.User, completion: (UndoResult) -> Unit? = null)

Records a plug-in that has already been instantiated.

Link copied to clipboard
open override fun recordTrackAddition(trackIndex: Int, origin: MutationOrigin = MutationOrigin.User, callback: (Int, String?) -> Unit)

Records an already-published, fully constructed track as one addition.

Link copied to clipboard
open override fun removeClip(trackIndex: Int, clipId: Int): Boolean
open override fun removeClip(trackIndex: Int, clipId: Int, origin: MutationOrigin): Boolean
Link copied to clipboard
open override fun removePluginInstance(instanceId: Int, origin: MutationOrigin = MutationOrigin.User, completion: (UndoResult) -> Unit? = null)

Captures state, removes the instance, and records the removal as one step.

Link copied to clipboard
open override fun removeTrack(trackIndex: Int, origin: MutationOrigin = MutationOrigin.User, callback: (Int, String?) -> Unit)
Link copied to clipboard
open override fun replaceAudioClipContent(trackIndex: Int, clipId: Int, filepath: String, markers: List<ClipMarkerData>, warps: List<AudioWarpPointData>, masterMarkers: List<ClipMarkerData>, origin: MutationOrigin = MutationOrigin.User): Boolean

Rebuilds an audio clip's source from its file with the given markers and warp points. A non-empty filepath switches the clip to that file and adopts its length; otherwise the clip keeps its length.

Link copied to clipboard
open override fun replaceMidiClipContent(trackIndex: Int, clipId: Int, umpEvents: UIntArray, tickTimestamps: LongArray, origin: MutationOrigin = MutationOrigin.User): Boolean

Replaces a MIDI clip's authored content, resizing the clip to match.

Link copied to clipboard
open override fun setLoop(enabled: Boolean, start: TimelinePosition, end: TimelinePosition)
Link copied to clipboard
open override fun setPluginState(instanceId: Int, state: ByteArray, origin: MutationOrigin = MutationOrigin.User, completion: (UndoResult) -> Unit? = null)
Link copied to clipboard
open override fun setTempo(tempo: Double)
Link copied to clipboard
open override fun setTimelineChangedCallback(callback: () -> Unit?)

Registers a callback invoked after every clip add/remove and after loadProject(). Pass null to unregister.

Link copied to clipboard
open override fun setTimeSignature(numerator: Int, denominator: Int)