| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

- Class List
- Class Index
- Class Hierarchy
- Class Members

Loading...
Searching...
No Matches
List of all members | Public Member Functions
AAX_ITransport Class Referenceabstract

`#include <AAX_ITransport.h>`

Inheritance diagram for AAX_ITransport:
[legend]

## Description

Interface to information about the host's transport state.

:Implemented by the AAX Host:

Plug-ins that use this interface should describe AAX_eProperty_UsesTransport as 1

Classes that inherit from AAX_CEffectParameters or AAX_CEffectGUI can use AAX_CEffectParameters::Transport() / AAX_CEffectGUI::Transport() to access this interface. This interface is used as a local interface to the AAX_VTransport versioned implemenation, which dispatches calls to the appropriate host-supplied versioned transport interface depending on which features are supported by the host. See AAX_CEffectParameters::Initialize() for an example.

A copy of this interface may also be obtained directly from the host using AAX_IMIDINode::GetTransport(). However, in this case the interface is not versioned, so the host and the plugin may not agree on the interface. This can lead to undefined behavior. See the documentation at AAX_IMIDINode::GetTransport() for more information.

## Public Member Functions
virtual | ~AAX_ITransport ()
| Virtual destructor.
virtual AAX_Result | GetCurrentTempo (double *TempoBPM) const =0
| CALL: Gets the current tempo.
virtual AAX_Result | GetCurrentMeter (int32_t *MeterNumerator, int32_t *MeterDenominator) const =0
| CALL: Gets the current meter.
virtual AAX_Result | IsTransportPlaying (bool *isPlaying) const =0
| CALL: Indicates whether or not the transport is playing back.
virtual AAX_Result | GetCurrentTickPosition (int64_t *TickPosition) const =0
| CALL: Gets the current tick position.
virtual AAX_Result | GetCurrentLoopPosition (bool *bLooping, int64_t *LoopStartTick, int64_t *LoopEndTick) const =0
| CALL: Gets current information on loop playback.
virtual AAX_Result | GetCurrentNativeSampleLocation (int64_t *SampleLocation) const =0
| CALL: Gets the current playback location of the native audio engine.
virtual AAX_Result | GetCustomTickPosition (int64_t *oTickPosition, int64_t iSampleLocation) const =0
| CALL: Given an absolute sample position, gets the corresponding tick position.
virtual AAX_Result | GetBarBeatPosition (int32_t *Bars, int32_t *Beats, int64_t *DisplayTicks, int64_t SampleLocation) const =0
| CALL: Given an absolute sample position, gets the corresponding bar and beat position.
virtual AAX_Result | GetTicksPerQuarter (uint32_t *ticks) const =0
| CALL: Retrieves the number of ticks per quarter note.
virtual AAX_Result | GetCurrentTicksPerBeat (uint32_t *ticks) const =0
| CALL: Retrieves the number of ticks per beat.
virtual AAX_Result | GetTimelineSelectionStartPosition (int64_t *oSampleLocation) const =0
| CALL: Retrieves the absolute sample position of the beginning of the current transport selection.
virtual AAX_Result | GetTimeCodeInfo (AAX_EFrameRate *oFrameRate, int32_t *oOffset) const =0
| CALL: Retrieves the current time code frame rate and offset.
virtual AAX_Result | GetFeetFramesInfo (AAX_EFeetFramesRate *oFeetFramesRate, int64_t *oOffset) const =0
| CALL: Retrieves the current timecode feet/frames rate and offset.
virtual AAX_Result | IsMetronomeEnabled (int32_t *isEnabled) const =0
| Sets isEnabled to true if the metronome is enabled.
virtual AAX_Result | GetHDTimeCodeInfo (AAX_EFrameRate *oHDFrameRate, int64_t *oHDOffset) const =0
| CALL: Retrieves the current HD time code frame rate and offset.
virtual AAX_Result | RequestTransportStart ()=0
| CALL: Request that the host transport start playback.
virtual AAX_Result | RequestTransportStop ()=0
| CALL: Request that the host transport stop playback.
virtual AAX_Result | GetTimelineSelectionEndPosition (int64_t *oSampleLocation) const =0
| CALL: Retrieves the absolute sample position of the end of the current transport selection.
virtual AAX_Result | GetKeySignature (int64_t iSampleLocation, uint32_t *oKeySignature) const =0
| CALL: Retrieves the key signature at a sample location.

## Constructor & Destructor Documentation

## ◆ ~AAX_ITransport()

virtual AAX_ITransport::~AAX_ITransport | ( |  | ) |
| inline virtual

Virtual destructor.

Note
  This destructor MUST be virtual to prevent memory leaks.

## Member Function Documentation

## ◆ GetCurrentTempo()

virtual AAX_Result AAX_ITransport::GetCurrentTempo | ( | double * | TempoBPM | ) | const
| pure virtual

CALL: Gets the current tempo.

Returns the tempo corresponding to the current position of the transport counter

Note
  The resolution of the tempo returned here is based on the host's tempo resolution, so it will match the tempo displayed in the host. Use GetCurrentTicksPerBeat() to calculate the tempo resolution note.

Parameters

  [out] | TempoBPM | The current tempo in beats per minute

Implemented in AAX_VTransport.

## ◆ GetCurrentMeter()

virtual AAX_Result AAX_ITransport::GetCurrentMeter | ( | int32_t * | MeterNumerator,
|  | int32_t * | MeterDenominator
| ) |  | const
| pure virtual

CALL: Gets the current meter.

Returns the meter corresponding to the current position of the transport counter

Parameters

  [out] | MeterNumerator | The numerator portion of the meter
  [out] | MeterDenominator | The denominator portion of the meter

Implemented in AAX_VTransport.

## ◆ IsTransportPlaying()

virtual AAX_Result AAX_ITransport::IsTransportPlaying | ( | bool * | isPlaying | ) | const
| pure virtual

CALL: Indicates whether or not the transport is playing back.

Parameters

  [out] | isPlaying | `true` if the transport is currently in playback

Implemented in AAX_VTransport.

## ◆ GetCurrentTickPosition()

virtual AAX_Result AAX_ITransport::GetCurrentTickPosition | ( | int64_t * | TickPosition | ) | const
| pure virtual

CALL: Gets the current tick position.

Returns the current tick position corresponding to the current transport position. One "Tick" is represented here as 1/960000 of a quarter note. That is, there are 960,000 of these ticks in a quarter note.

Host Compatibility Notes:
  The tick resolution here is different than that of the tick displayed in Pro Tools. "Display ticks" (as they are called) are 1/960 of a quarter note.

Parameters

  [out] | TickPosition | The tick position value

Implemented in AAX_VTransport.

## ◆ GetCurrentLoopPosition()

virtual AAX_Result AAX_ITransport::GetCurrentLoopPosition | ( | bool * | bLooping,
|  | int64_t * | LoopStartTick,
|  | int64_t * | LoopEndTick
| ) |  | const
| pure virtual

CALL: Gets current information on loop playback.

Host Compatibility Notes:
  This does not indicate anything about the status of the "Loop Record" option. Even when the host is configured to loop playback, looping may not occur if certain conditions are not met (i.e. the length of the selection is too short)

Parameters

  [out] | bLooping | `true` if the host is configured to loop playback
  [out] | LoopStartTick | The starting tick position of the selection being looped (see GetCurrentTickPosition())
  [out] | LoopEndTick | The ending tick position of the selection being looped (see GetCurrentTickPosition())

Implemented in AAX_VTransport.

## ◆ GetCurrentNativeSampleLocation()

virtual AAX_Result AAX_ITransport::GetCurrentNativeSampleLocation | ( | int64_t * | SampleLocation | ) | const
| pure virtual

CALL: Gets the current playback location of the native audio engine.

When called from a ProcessProc render callback, this method will provide the absolute sample location at the beginning of the callback's audio buffers.

When called from AAX_IEffectParameters::RenderAudio_Hybrid(), this method will provide the absolute sample location for the samples in the method's output audio buffers. To calculate the absolute sample location for the sampels in the method's input buffers (i.e. the timelin location where the samples originated) subtract the value provided by AAX_IController::GetHybridSignalLatency() from this value.

When called from a non-real-time thread, this method will provide the current location of the samples being processed by the plug-in's ProcessProc on its real-time processing thread.

Note
  This method only returns a value during playback. It cannot be used to determine, e.g., the location of the timeline selector while the host is not in playback.

Parameters

  [out] | SampleLocation | Absolute sample location of the first sample in the current native processing buffer

Implemented in AAX_VTransport.

## ◆ GetCustomTickPosition()

virtual AAX_Result AAX_ITransport::GetCustomTickPosition | ( | int64_t * | oTickPosition,
|  | int64_t | iSampleLocation
| ) |  | const
| pure virtual

CALL: Given an absolute sample position, gets the corresponding tick position.

Host Compatibility Notes:
  There is a minor performance cost associated with using this API in Pro Tools. It should not be used excessively without need.

Parameters

  [out] | oTickPosition | the timeline tick position corresponding to `iSampleLocation`
  [in] | iSampleLocation | An absolute sample location (see GetCurrentNativeSampleLocation())

Implemented in AAX_VTransport.

## ◆ GetBarBeatPosition()

virtual AAX_Result AAX_ITransport::GetBarBeatPosition | ( | int32_t * | Bars,
|  | int32_t * | Beats,
|  | int64_t * | DisplayTicks,
|  | int64_t | SampleLocation
| ) |  | const
| pure virtual

CALL: Given an absolute sample position, gets the corresponding bar and beat position.

Host Compatibility Notes:
  There is a minor performance cost associated with using this API in Pro Tools. It should not be used excessively without need.

Parameters

  [out] | Bars | The bar corresponding to `SampleLocation`
  [out] | Beats | The beat corresponding to `SampleLocation`
  [out] | DisplayTicks | The ticks corresponding to `SampleLocation`
  [in] | SampleLocation | An absolute sample location (see GetCurrentNativeSampleLocation())

Implemented in AAX_VTransport.

## ◆ GetTicksPerQuarter()

virtual AAX_Result AAX_ITransport::GetTicksPerQuarter | ( | uint32_t * | ticks | ) | const
| pure virtual

CALL: Retrieves the number of ticks per quarter note.

Parameters

  [out] | ticks |

Implemented in AAX_VTransport.

## ◆ GetCurrentTicksPerBeat()

virtual AAX_Result AAX_ITransport::GetCurrentTicksPerBeat | ( | uint32_t * | ticks | ) | const
| pure virtual

CALL: Retrieves the number of ticks per beat.

Parameters

  [out] | ticks |

Implemented in AAX_VTransport.

## ◆ GetTimelineSelectionStartPosition()

virtual AAX_Result AAX_ITransport::GetTimelineSelectionStartPosition | ( | int64_t * | oSampleLocation | ) | const
| pure virtual

CALL: Retrieves the absolute sample position of the beginning of the current transport selection.

Note
  This method is part of the version 2 transport interface

Parameters

  [out] | oSampleLocation |

Implemented in AAX_VTransport.

## ◆ GetTimeCodeInfo()

virtual AAX_Result AAX_ITransport::GetTimeCodeInfo | ( | AAX_EFrameRate * | oFrameRate,
|  | int32_t * | oOffset
| ) |  | const
| pure virtual

CALL: Retrieves the current time code frame rate and offset.

Note
  This method is part of the version 2 transport interface

Parameters

  [out] | oFrameRate |
  [out] | oOffset |

Implemented in AAX_VTransport.

## ◆ GetFeetFramesInfo()

virtual AAX_Result AAX_ITransport::GetFeetFramesInfo | ( | AAX_EFeetFramesRate * | oFeetFramesRate,
|  | int64_t * | oOffset
| ) |  | const
| pure virtual

CALL: Retrieves the current timecode feet/frames rate and offset.

Note
  This method is part of the version 2 transport interface

Parameters

  [out] | oFeetFramesRate |
  [out] | oOffset |

Implemented in AAX_VTransport.

## ◆ IsMetronomeEnabled()

virtual AAX_Result AAX_ITransport::IsMetronomeEnabled | ( | int32_t * | isEnabled | ) | const
| pure virtual

Sets isEnabled to true if the metronome is enabled.

Note
  This method is part of the version 2 transport interface

Parameters

  [out] | isEnabled |

Implemented in AAX_VTransport.

## ◆ GetHDTimeCodeInfo()

virtual AAX_Result AAX_ITransport::GetHDTimeCodeInfo | ( | AAX_EFrameRate * | oHDFrameRate,
|  | int64_t * | oHDOffset
| ) |  | const
| pure virtual

CALL: Retrieves the current HD time code frame rate and offset.

Note
  This method is part of the version 3 transport interface

Parameters

  [out] | oHDFrameRate |
  [out] | oHDOffset |

Implemented in AAX_VTransport.

## ◆ RequestTransportStart()

virtual AAX_Result AAX_ITransport::RequestTransportStart | ( |  | ) |
| pure virtual

CALL: Request that the host transport start playback.

Note
  This method is part of the AAX_IACFTransportControl interface

Implemented in AAX_VTransport.

## ◆ RequestTransportStop()

virtual AAX_Result AAX_ITransport::RequestTransportStop | ( |  | ) |
| pure virtual

CALL: Request that the host transport stop playback.

Note
  This method is part of the AAX_IACFTransportControl interface

Implemented in AAX_VTransport.

## ◆ GetTimelineSelectionEndPosition()

virtual AAX_Result AAX_ITransport::GetTimelineSelectionEndPosition | ( | int64_t * | oSampleLocation | ) | const
| pure virtual

CALL: Retrieves the absolute sample position of the end of the current transport selection.

Note
  This method is part of the version 4 transport interface

Parameters

  [out] | oSampleLocation |

Implemented in AAX_VTransport.

## ◆ GetKeySignature()

virtual AAX_Result AAX_ITransport::GetKeySignature | ( | int64_t | iSampleLocation,
|  | uint32_t * | oKeySignature
| ) |  | const
| pure virtual

CALL: Retrieves the key signature at a sample location.

The signature is provided as a bitfield:

- 31-20: Chromatic scale elements, ordered MSB (root) to LSB
- 19-4: (Reserved)
- 3-0: Root note (C natural = 0)

For example

    *	  D# Major
    *	     Ionian                          D#
    *	  0b 101011010101 0000 00000000 0000 0011
    *
    *	  E Phrygian
    *	     Phrygian                        E
    *	  0b 110101011010 0000 00000000 0000 0100
    *
    *	  Chromatic
    *	     Chromatic                       C
    *	  0b 111111111111 0000 00000000 0000 0000
    *

Implemented in AAX_VTransport.

The documentation for this class was generated from the following file:

- AAX_ITransport.h