AAX SDK  2.4.1
Avid Audio Extensions Development Kit
AAX_VTransport.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2013-2017, 2019-2020 by Avid Technology, Inc.
5  * All rights reserved.
6  *
7  * CONFIDENTIAL: This document contains confidential information. Do not
8  * read or examine this document unless you are an Avid Technology employee
9  * or have signed a non-disclosure agreement with Avid Technology which protects
10  * the confidentiality of this document. DO NOT DISCLOSE ANY INFORMATION
11  * CONTAINED IN THIS DOCUMENT TO ANY THIRD-PARTY WITHOUT THE PRIOR WRITTEN CONSENT
12  * OF Avid Technology, INC.
13  *
14  */
15 
22 /*================================================================================================*/
23 
24 #ifndef AAX_VTRANSPORT_H
25 #define AAX_VTRANSPORT_H
26 
27 #include "AAX_ITransport.h"
28 #include "AAX_IACFTransport.h"
29 #include "ACFPtr.h"
30 
36 {
37 public:
40 
41  // Transport Information Getters
42  // AAX_IACFTransport
43  AAX_Result GetCurrentTempo ( double* TempoBPM ) const AAX_OVERRIDE;
44  AAX_Result GetCurrentMeter ( int32_t* MeterNumerator, int32_t* MeterDenominator ) const AAX_OVERRIDE;
45  AAX_Result IsTransportPlaying ( bool* isPlaying ) const AAX_OVERRIDE;
46  AAX_Result GetCurrentTickPosition ( int64_t* TickPosition ) const AAX_OVERRIDE;
47  AAX_Result GetCurrentLoopPosition ( bool* bLooping, int64_t* LoopStartTick, int64_t* LoopEndTick ) const AAX_OVERRIDE;
48  AAX_Result GetCurrentNativeSampleLocation ( int64_t* SampleLocation ) const AAX_OVERRIDE;
49  AAX_Result GetCustomTickPosition( int64_t* oTickPosition, int64_t iSampleLocation) const AAX_OVERRIDE;
50  AAX_Result GetBarBeatPosition(int32_t* Bars, int32_t* Beats, int64_t* DisplayTicks, int64_t SampleLocation) const AAX_OVERRIDE;
51  AAX_Result GetTicksPerQuarter ( uint32_t* ticks ) const AAX_OVERRIDE;
52  AAX_Result GetCurrentTicksPerBeat ( uint32_t* ticks ) const AAX_OVERRIDE;
53 
54  // AAX_IACFTransport_V2
55  AAX_Result GetTimelineSelectionStartPosition ( int64_t* oSampleLocation ) const AAX_OVERRIDE;
56  AAX_Result GetTimeCodeInfo( AAX_EFrameRate* oFrameRate, int32_t* oOffset ) const AAX_OVERRIDE;
57  AAX_Result GetFeetFramesInfo( AAX_EFeetFramesRate* oFeetFramesRate, int64_t* oOffset ) const AAX_OVERRIDE;
58  AAX_Result IsMetronomeEnabled ( int32_t* isEnabled ) const AAX_OVERRIDE;
59 
60  // AAX_IACFTransport_V3
61  AAX_Result GetHDTimeCodeInfo( AAX_EFrameRate* oHDFrameRate, int64_t* oHDOffset ) const AAX_OVERRIDE;
62 
63 private:
64  ACFPtr<AAX_IACFTransport> mITransport;
65  ACFPtr<AAX_IACFTransport_V2> mITransportV2;
66  ACFPtr<AAX_IACFTransport_V3> mITransportV3;
67 };
68 
69 #endif // AAX_VTRANSPORT_H
70 
int32_t AAX_Result
Definition: AAX.h:337
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:141
AAX_EFrameRate
FrameRate types.
Definition: AAX_Enums.h:1075
AAX_EFeetFramesRate
FeetFramesRate types.
Definition: AAX_Enums.h:1104
Interface for the AAX Transport data access functionality.
The interface for query ProTools transport information.
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:248
Versioned interface to information about the host's transport state.
Definition: AAX_IACFTransport.h:39
Versioned interface to information about the host's transport state.
Definition: AAX_IACFTransport.h:58
Versioned interface to information about the host's transport state.
Definition: AAX_IACFTransport.h:70
Interface to information about the host's transport state.
Definition: AAX_ITransport.h:45
Version-managed concrete AAX_ITransport class.
Definition: AAX_VTransport.h:36
AAX_Result GetTimelineSelectionStartPosition(int64_t *oSampleLocation) const AAX_OVERRIDE
CALL: Retrieves the current absolute sample position of the beginning of the current transport select...
AAX_Result GetCurrentTickPosition(int64_t *TickPosition) const AAX_OVERRIDE
CALL: Gets the current tick position.
~AAX_VTransport() AAX_OVERRIDE
AAX_Result GetCurrentTempo(double *TempoBPM) const AAX_OVERRIDE
CALL: Gets the current tempo.
AAX_Result IsTransportPlaying(bool *isPlaying) const AAX_OVERRIDE
CALL: Indicates whether or not the transport is playing back.
AAX_Result GetBarBeatPosition(int32_t *Bars, int32_t *Beats, int64_t *DisplayTicks, int64_t SampleLocation) const AAX_OVERRIDE
CALL: Given an absolute sample position, gets the corresponding bar and beat position.
AAX_VTransport(IACFUnknown *pUnknown)
AAX_Result GetCurrentTicksPerBeat(uint32_t *ticks) const AAX_OVERRIDE
CALL: Retrieves the number of ticks per beat.
AAX_Result GetCurrentMeter(int32_t *MeterNumerator, int32_t *MeterDenominator) const AAX_OVERRIDE
CALL: Gets the current meter.
AAX_Result GetCurrentLoopPosition(bool *bLooping, int64_t *LoopStartTick, int64_t *LoopEndTick) const AAX_OVERRIDE
CALL: Gets current information on loop playback.
AAX_Result GetHDTimeCodeInfo(AAX_EFrameRate *oHDFrameRate, int64_t *oHDOffset) const AAX_OVERRIDE
CALL: Retrieves the current HD time code frame rate and offset.
AAX_Result GetTicksPerQuarter(uint32_t *ticks) const AAX_OVERRIDE
CALL: Retrieves the number of ticks per quarter note.
AAX_Result GetCurrentNativeSampleLocation(int64_t *SampleLocation) const AAX_OVERRIDE
CALL: Gets the current playback location of the native audio engine.
AAX_Result GetCustomTickPosition(int64_t *oTickPosition, int64_t iSampleLocation) const AAX_OVERRIDE
CALL: Given an absolute sample position, gets the corresponding tick position.
AAX_Result GetFeetFramesInfo(AAX_EFeetFramesRate *oFeetFramesRate, int64_t *oOffset) const AAX_OVERRIDE
CALL: Retrieves the current timecode feet/frames rate and offset.
AAX_Result GetTimeCodeInfo(AAX_EFrameRate *oFrameRate, int32_t *oOffset) const AAX_OVERRIDE
CALL: Retrieves the current time code frame rate and offset.
AAX_Result IsMetronomeEnabled(int32_t *isEnabled) const AAX_OVERRIDE
Sets isEnabled to true if the metronome is enabled.