VST 3 Interfaces VST 3.8
SDK for developing VST plug-in
Loading...
Searching...
No Matches
ITransportControl Class Referenceabstract

Vst::ITransportControl Interface. More...

#include <ivsttransportcontrol.h>

+ Inheritance diagram for ITransportControl:

Public Types

enum  Action : int32 {
  Locate = 0 , PlaybackStart , PlaybackStop , LocateAndPlaybackStart ,
  PlaybackStopAndLocate , RecordOnPlaybackStart , LocateAndRecordOnPlaybackStart , RecordOff ,
  RecordOffPlaybackStop , RecordOffPlaybackStopAndLocate , SetCycleStart , SetCycleEnd ,
  CycleOn , CycleOff
}
 Transport action requested by the plug-in. More...
 

Public Member Functions

virtual tresult requestAction (int32 action, TransportPosition *position=nullptr)=0
 Request a transport action from the host.
 
virtual tresult isActionSupported (int32 action)=0
 Query whether the host supports the given action.
 
- Public Member Functions inherited from FUnknown
virtual tresult queryInterface (const TUID _iid, void **obj)=0
 
virtual uint32 addRef ()=0
 
virtual uint32 release ()=0
 

Static Public Attributes

static const FUID iid
 
- Static Public Attributes inherited from FUnknown
static const FUID iid
 

Detailed Description

Vst::ITransportControl Interface.

This interface allows a plug-in to request transport-related actions from the host. Typical use cases include:

  • Jumping (locating) to a position
  • Starting or stopping playback or recording
  • Adjusting loop/cycle regions
  • Enabling or disabling cycle playback

All calls must be made from the UI thread. Hosts may accept or deny requests depending on their internal policies or the current editing mode (e.g., offline rendering, write-protected state, etc.).

Member Enumeration Documentation

◆ Action

enum Action : int32

Transport action requested by the plug-in.

Enumerator
Locate 

Locate transport to a new position.

Requires a valid TransportPosition.

PlaybackStart 

Playback control.

Start playback at current position

PlaybackStop 

Stop playback, keep current position.

LocateAndPlaybackStart 

Locate and start playback (position required)

PlaybackStopAndLocate 

Stop and locate (position required)

RecordOnPlaybackStart 

Recording control.

Start recording and playback at current position

LocateAndRecordOnPlaybackStart 

Locate and start recording and playback (position required)

RecordOff 

Stop recording and continue playback.

RecordOffPlaybackStop 

Stop recording and playback, keep current position.

RecordOffPlaybackStopAndLocate 

Stop recording and playback and locate (position required)

SetCycleStart 

Cycle / Loop control.

Set start of cycle/loop region (position required)

SetCycleEnd 

Set end of cycle/loop region (position required)

CycleOn 

Enable looping/cycle mode.

CycleOff 

Disable looping/cycle mode.

Member Function Documentation

◆ requestAction()

virtual tresult requestAction ( int32 action,
TransportPosition * position = nullptr )
pure virtual

Request a transport action from the host.

The host may accept the request or refuse it based on its current state (editing mode, user preferences, restricted transport control policies).

Parameters
actionThe action to perform.
positionOptional pointer to a TransportPosition. Required for locate or cycle-related actions.
Returns
kResultOk The request is accepted (not necessarily completed synchronously). kNotImplemented Host does not implement this function. kInvalidArgument Position missing or invalid for the supplied action. kResultFalse Host refuses the action due to state/policy constraints.
Note
Must be called from the UI/main thread.
[UI-thread & (Initialized | Connected)]

◆ isActionSupported()

virtual tresult isActionSupported ( int32 action)
pure virtual

Query whether the host supports the given action.

This is useful for updating plug-in UI elements (enabling or disabling buttons).

Parameters
actionThe action to test.
Returns
kResultOk The action is supported. kResultFalse The action is not supported. kNotImplemented Host does not implement this function. kInvalidArgument Unknown action.
Note
Must be called from the UI/main thread.
[UI-thread & (Initialized | Connected)]

Member Data Documentation

◆ iid

const FUID iid
static
Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.