TracktionEngine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
engine::ClipTrack Class Reference

#include <tracktion_ClipTrack.h>

Inheritance diagram for engine::ClipTrack:

Public Types

using Ptr = juce::ReferenceCountedObjectPtr< ClipTrack >
 
- Public Types inherited from engine::Track
enum  FreezeType { groupFreeze = 0 , individualFreeze , anyFreeze }
 Determines the type of freeze. More...
 
enum  MuteAndSoloLightState {
  soloLit = 1 , soloFlashing = 2 , soloIsolate = 4 , muteLit = 8 ,
  muteFlashing = 16
}
 Determines the status of the mute and solo indicators. More...
 
using Ptr = juce::ReferenceCountedObjectPtr< Track >
 
using Array = juce::ReferenceCountedArray< Track >
 
- Public Types inherited from engine::Selectable
using WeakRef = juce::WeakReference< Selectable >
 

Public Member Functions

 ClipTrack (Edit &, const juce::ValueTree &, bool hasModifierList)
 
 ~ClipTrack () override
 
void initialise () override
 
void flushStateToValueTree () override
 
ClipfindClipForID (EditItemID) const override
 Returns a clip one with a matching ID can be found on this Track.
 
CollectionClipgetCollectionClip (int index) const noexcept
 
CollectionClipgetCollectionClip (Clip *) const
 
int getNumCollectionClips () const noexcept
 
int indexOfCollectionClip (CollectionClip *) const
 
int getIndexOfNextCollectionClipAt (TimePosition)
 
CollectionClipgetNextCollectionClipAt (TimePosition)
 
bool contains (CollectionClip *) const
 
void addCollectionClip (CollectionClip *)
 
void removeCollectionClip (CollectionClip *)
 
int getNumTrackItems () const override
 Should return the number of TrackItem[s] on this Track.
 
TrackItemgetTrackItem (int idx) const override
 Should return the TrackItem at the given index.
 
int indexOfTrackItem (TrackItem *) const override
 Should return the index of the given TrackItem.
 
int getIndexOfNextTrackItemAt (TimePosition) override
 Should return the index of the TrackItem after this time.
 
TrackItemgetNextTrackItemAt (TimePosition) override
 Should return the TrackItem after this time.
 
TimeDuration getLength () const
 
TimeDuration getLengthIncludingInputTracks () const
 
TimeRange getTotalRange () const
 
bool addClip (const Clip::Ptr &)
 
ClipinsertClipWithState (juce::ValueTree)
 
ClipinsertClipWithState (const juce::ValueTree &stateToUse, const juce::String &name, TrackItem::Type type, ClipPosition position, bool deleteExistingClips, bool allowSpottingAdjustment)
 
ClipinsertNewClip (TrackItem::Type, TimeRange position, SelectionManager *selectionManagerToSelectWith)
 
ClipinsertNewClip (TrackItem::Type, const juce::String &name, TimeRange position, SelectionManager *selectionManagerToSelectWith)
 
ClipinsertNewClip (TrackItem::Type, const juce::String &name, ClipPosition position, SelectionManager *selectionManagerToSelectWith)
 
juce::ReferenceCountedObjectPtr< WaveAudioClipinsertWaveClip (const juce::String &name, const juce::File &sourceFile, ClipPosition position, bool deleteExistingClips)
 
juce::ReferenceCountedObjectPtr< WaveAudioClipinsertWaveClip (const juce::String &name, ProjectItemRef sourceID, ClipPosition position, bool deleteExistingClips)
 
juce::ReferenceCountedObjectPtr< MidiClipinsertMIDIClip (TimeRange position, SelectionManager *selectionManagerToSelectWith)
 
juce::ReferenceCountedObjectPtr< MidiClipinsertMIDIClip (const juce::String &name, TimeRange position, SelectionManager *selectionManagerToSelectWith)
 
juce::ReferenceCountedObjectPtr< EditClipinsertEditClip (TimeRange position, ProjectItemRef sourceID)
 
void deleteRegion (TimeRange, SelectionManager *)
 
void deleteRegionOfClip (Clip::Ptr, TimeRange, SelectionManager *)
 
ClipsplitClip (Clip &, TimePosition)
 breaks a clip into 2 bits
 
void splitAt (TimePosition)
 split all clips at this time
 
void insertSpace (TimePosition, TimeDuration)
 Inserts space at the given time, moving clips whose center is after that point.
 
TimePosition getNextTimeOfInterest (TimePosition afterThisTime)
 finds the next cut point
 
TimePosition getPreviousTimeOfInterest (TimePosition beforeThisTime)
 
bool containsPlugin (const Plugin *) const override
 Tests whether this Track or a clip on it contains the given plugin.
 
Plugin::Array getAllPlugins () const override
 Returns all pugins on this Track.
 
void sendMirrorUpdateToAllPlugins (Plugin &) const override
 Sends a message to all plugins that the given plugin has changed.
 
bool areAnyClipsUsingFile (const AudioFile &)
 
bool containsAnyMIDIClips () const
 
juce::ValueTree & getClipOwnerState () override
 
EditItemID getClipOwnerID () override
 
SelectablegetClipOwnerSelectable () override
 
EditgetClipOwnerEdit () override
 
void clipCreated (Clip &) override
 
void clipAddedOrRemoved () override
 
void clipOrderChanged () override
 
void clipPositionChanged () override
 
- Public Member Functions inherited from engine::Track
 Track (Edit &, const juce::ValueTree &, bool hasModifierList)
 Creates a track with a given state.
 
 ~Track () override
 Destructor.
 
void refreshCurrentAutoParam ()
 Updates the current parameter bases on the set IDs.
 
juce::String getName () const override
 Returns the name of the Track.
 
void setName (const juce::String &)
 Sets the name of the Track.
 
void resetName ()
 Sets the name of the Track to an empty string.
 
virtual void sanityCheckName ()
 Sub-classes can impliment this to avoid certain characters being used in a name.
 
virtual bool isAudioTrack () const
 Returns true if this is an AudioTrack.
 
virtual bool isAutomationTrack () const
 Returns true if this is an AutomationTrack.
 
virtual bool isFolderTrack () const
 Returns true if this is a FolderTrack.
 
virtual bool isMarkerTrack () const
 Returns true if this is a MarkerTrack.
 
virtual bool isTempoTrack () const
 Returns true if this is a TempoTrack.
 
virtual bool isChordTrack () const
 Returns true if this is a ChordTrack.
 
virtual bool isArrangerTrack () const
 Returns true if this is an ArrangerTrack.
 
virtual bool isMasterTrack () const
 Returns true if this is a MasterTrack.
 
bool canContainMarkers () const
 Returns true if this Track can contain MarkerClip[s].
 
bool canContainMIDI () const
 Returns true if this Track can contain MidiClip[s].
 
bool canContainAudio () const
 Returns true if this Track can contain WaveAudioClip[s].
 
bool canContainEditClips () const
 Returns true if this Track can contain EditClip[s].
 
bool canContainPlugins () const
 Returns true if this Track can contain Plugin[s].
 
bool isMovable () const
 Returns true if this Track is movable.
 
bool acceptsInput () const
 Returns true if this track can have inputs assigned to it.
 
bool createsOutput () const
 Returns true if this track creates audible output.
 
bool wantsAutomation () const
 Returns true if this track can show automation.
 
virtual bool canContainPlugin (Plugin *) const =0
 Returns true if this track can contain a specific Plugin.
 
virtual bool isFrozen (FreezeType) const
 Returns true if this track is frozen using the given type.
 
virtual void setFrozen (bool, FreezeType)
 Attempts to freeze or unfreeze the track using a given FreezeType.
 
bool isHidden () const
 Returns true if this track should be hidden from view.
 
void setHidden (bool h)
 Sets whether this track should be hidden from view.
 
bool isProcessing (bool includeParents) const
 Returns true if this track should be included in playback.
 
void setProcessing (bool p)
 Sets whether this track should be included in playback.
 
virtual bool processAudioNodesWhileMuted () const
 Subclasses can override this to ensure track contents are still played even when the track is muted.
 
virtual juce::Array< Track * > getInputTracks () const
 Should return any tracks which feed into this track.
 
juce::Array< Track * > getAllSubTracks (bool recursive) const
 Returns all nested tracks.
 
juce::Array< AudioTrack * > getAllAudioSubTracks (bool recursive) const
 Returns all nested AudioTrack[s].
 
TrackListgetSubTrackList () const
 Returns the TrackList if this Track has any sub-tracks.
 
bool hasSubTracks () const
 Returns true if this track has any subtracks.
 
TrackgetSiblingTrack (int delta, bool keepWithinSameParent) const
 Returns a sibling Track to this one.
 
juce::ValueTree getParentTrackTree () const
 Returns the state of the parent Track.
 
TrackgetParentTrack () const
 Returns the parent Track if this is a nested track.
 
FolderTrackgetParentFolderTrack () const
 Returns the parent FolderTrack if this is nested in one.
 
bool isAChildOf (const Track &possibleParent) const
 Tests whether this is a child of a given Track.
 
bool isPartOfSubmix () const
 Tests whether this nested within a submix FolderTrack.
 
int getIndexInEditTrackList () const
 Returns the index of this track in a flat list of tracks contained in an Edit.
 
int getTrackDepth () const
 Returns the number of parents within which this track is nested.
 
virtual bool isMuted (bool) const
 Returns true if this track is muted.
 
virtual bool isSolo (bool) const
 Returns true if this track is soloed.
 
virtual bool isSoloIsolate (bool) const
 Returns true if this track is solo isolated.
 
virtual void setMute (bool)
 Subclasses should implement this to mute themselves.
 
virtual void setSolo (bool)
 Subclasses should implement this to solo themselves.
 
virtual void setSoloIsolate (bool)
 Subclasses should implement this to solo isolate themselves.
 
MuteAndSoloLightState getMuteAndSoloLightState () const
 Returns the mute a solo status.
 
bool shouldBePlayed () const noexcept
 Tests whether this track should be audible in the playback graph i.e.
 
void updateAudibility (bool areAnyTracksSolo)
 Updates the audibility state of the Track.
 
juce::Array< AutomatableParameter * > getAllAutomatableParams () const
 Returns all the parameters for this track's Plugin[s] and Modifier[s].
 
void visitAllAutomatableParams (const std::function< void(AutomatableParameter &)> &) const
 Visits all the parameters for this track's Plugin[s] and Modifier[s].
 
AutomatableParametergetCurrentlyShownAutoParam () const noexcept
 Returns the parameter whos curve should be shown on this Track.
 
void setCurrentlyShownAutoParam (const AutomatableParameter::Ptr &)
 Sets a parameter to display on this Track.
 
void hideAutomatableParametersForSource (EditItemID pluginOrParameterID)
 Hides a shown parameter if it matches the given ID.
 
bool hasFreezePointPlugin () const
 Tests whether this Track contains a FreezePointPlugin.
 
std::vector< AutomatableEditItem * > getAllAutomatableEditItems () const
 Returns all AutomatableEditItem[s] on this Track.
 
void flipAllPluginsEnablement ()
 Toggles the Plugin::isEnabled state for all Plugin[s] on this Track.
 
ModifierListgetModifierList () const
 Returns the ModifierList for this track, if it has one.
 
void setColour (juce::Colour newColour)
 Sets a colour for this track to use.
 
juce::Colour getColour () const
 Returns the the of this.
 
bool canShowImage () const
 Tests whether this Track can show an image.
 
void setTrackImage (const juce::String &idOrData)
 Sets some image data to use.
 
juce::String getTrackImage () const
 Returns previously set image data.
 
bool imageHasChanged ()
 Tests and resets a flag internally kept when the image changes.
 
void setTags (const juce::StringArray &)
 Sets an array of Strings to use as tags.
 
juce::String getTags () const
 Returns the tags as a pipe-separated single String.
 
const juce::StringArray & getTagsArray () const noexcept
 Returns the array of tags.
 
- Public Member Functions inherited from engine::EditItem
 EditItem (EditItemID, Edit &)
 
 EditItem (Edit &, const juce::ValueTree &)
 
virtual ~EditItem ()=default
 
- Public Member Functions inherited from engine::Selectable
 Selectable ()
 
virtual ~Selectable ()
 
virtual juce::String getSelectableDescription ()=0
 Subclasses must return a description of what they are.
 
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected.
 
virtual void changed ()
 This should be called to send a change notification to any SelectableListeners that are registered with this object.
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.
 
void addListener (SelectableListener *)
 
void removeListener (SelectableListener *)
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions.
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 
- Public Member Functions inherited from engine::ClipOwner
 ClipOwner ()
 Constructs an empty ClipOwner.
 
virtual ~ClipOwner ()
 Destructor.
 
const juce::Array< Clip * > & getClips () const
 Returns the clips this owner contains.
 

Protected Member Functions

juce::Array< TimePositionfindAllTimesOfInterest ()
 
void refreshTrackItems () const
 
- Protected Member Functions inherited from engine::Track
void valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override
 
void valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &) override
 
void valueTreeChildRemoved (juce::ValueTree &, juce::ValueTree &, int) override
 
void valueTreeChildOrderChanged (juce::ValueTree &, int, int) override
 
void valueTreeParentChanged (juce::ValueTree &) override
 
void handleAsyncUpdate () override
 
virtual bool isTrackAudible (bool areAnyTracksSolo) const
 Returns whether this Track should be audible.
 
- Protected Member Functions inherited from engine::ClipOwner
void initialiseClipOwner (Edit &, juce::ValueTree clipParentState)
 Must be called once from the subclass constructor to init the clip owner.
 

Protected Attributes

std::unique_ptr< CollectionClipListcollectionClipList
 
bool trackItemsDirty = false
 
juce::Array< TrackItem * > trackItems
 

Additional Inherited Members

- Static Public Member Functions inherited from engine::Selectable
static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted.
 
- Public Attributes inherited from engine::Track
juce::ValueTree state
 The state of this Track.
 
PluginList pluginList
 The Track's PluginList.
 
juce::CachedValue< AutomationModeautomationMode
 The automation mode for parameters on this track to use.
 
- Public Attributes inherited from engine::EditItem
Editedit
 
const EditItemID itemID
 Every EditItem has an ID which is unique within the edit.
 
- Public Attributes inherited from engine::Selectable
WeakRef::Master masterReference
 
- Static Public Attributes inherited from engine::Track
static const int minTrackHeightForDetail = 10
 The minimim height to show track contents at.
 
static const int trackHeightForEditor = 180
 The height at which inline editors should be shown.
 
static const int frozenTrackHeight = 15
 The height to show group frozen tracks.
 

Member Typedef Documentation

◆ Ptr

using engine::ClipTrack::Ptr = juce::ReferenceCountedObjectPtr<ClipTrack>

Constructor & Destructor Documentation

◆ ClipTrack()

engine::ClipTrack::ClipTrack ( Edit ,
const juce::ValueTree &  ,
bool  hasModifierList 
)

◆ ~ClipTrack()

engine::ClipTrack::~ClipTrack ( )
override

Member Function Documentation

◆ initialise()

void engine::ClipTrack::initialise ( )
overridevirtual

Reimplemented from engine::Track.

◆ flushStateToValueTree()

void engine::ClipTrack::flushStateToValueTree ( )
overridevirtual

Reimplemented from engine::Track.

◆ findClipForID()

Clip * engine::ClipTrack::findClipForID ( EditItemID  ) const
overridevirtual

Returns a clip one with a matching ID can be found on this Track.

Reimplemented from engine::Track.

◆ getCollectionClip() [1/2]

CollectionClip * engine::ClipTrack::getCollectionClip ( int  index) const
noexcept

◆ getCollectionClip() [2/2]

CollectionClip * engine::ClipTrack::getCollectionClip ( Clip ) const

◆ getNumCollectionClips()

int engine::ClipTrack::getNumCollectionClips ( ) const
noexcept

◆ indexOfCollectionClip()

int engine::ClipTrack::indexOfCollectionClip ( CollectionClip ) const

◆ getIndexOfNextCollectionClipAt()

int engine::ClipTrack::getIndexOfNextCollectionClipAt ( TimePosition  )

◆ getNextCollectionClipAt()

CollectionClip * engine::ClipTrack::getNextCollectionClipAt ( TimePosition  )

◆ contains()

bool engine::ClipTrack::contains ( CollectionClip ) const

◆ addCollectionClip()

void engine::ClipTrack::addCollectionClip ( CollectionClip )

◆ removeCollectionClip()

void engine::ClipTrack::removeCollectionClip ( CollectionClip )

◆ getNumTrackItems()

int engine::ClipTrack::getNumTrackItems ( ) const
overridevirtual

Should return the number of TrackItem[s] on this Track.

Reimplemented from engine::Track.

◆ getTrackItem()

TrackItem * engine::ClipTrack::getTrackItem ( int  ) const
overridevirtual

Should return the TrackItem at the given index.

Reimplemented from engine::Track.

◆ indexOfTrackItem()

int engine::ClipTrack::indexOfTrackItem ( TrackItem ) const
overridevirtual

Should return the index of the given TrackItem.

Reimplemented from engine::Track.

◆ getIndexOfNextTrackItemAt()

int engine::ClipTrack::getIndexOfNextTrackItemAt ( TimePosition  )
overridevirtual

Should return the index of the TrackItem after this time.

Reimplemented from engine::Track.

◆ getNextTrackItemAt()

TrackItem * engine::ClipTrack::getNextTrackItemAt ( TimePosition  )
overridevirtual

Should return the TrackItem after this time.

Reimplemented from engine::Track.

◆ getLength()

TimeDuration engine::ClipTrack::getLength ( ) const

◆ getLengthIncludingInputTracks()

TimeDuration engine::ClipTrack::getLengthIncludingInputTracks ( ) const

◆ getTotalRange()

TimeRange engine::ClipTrack::getTotalRange ( ) const

◆ addClip()

bool engine::ClipTrack::addClip ( const Clip::Ptr )

◆ insertClipWithState() [1/2]

Clip * engine::ClipTrack::insertClipWithState ( juce::ValueTree  )

◆ insertClipWithState() [2/2]

Clip * engine::ClipTrack::insertClipWithState ( const juce::ValueTree &  stateToUse,
const juce::String &  name,
TrackItem::Type  type,
ClipPosition  position,
bool  deleteExistingClips,
bool  allowSpottingAdjustment 
)

◆ insertNewClip() [1/3]

Clip * engine::ClipTrack::insertNewClip ( TrackItem::Type  ,
TimeRange  position,
SelectionManager selectionManagerToSelectWith 
)

◆ insertNewClip() [2/3]

Clip * engine::ClipTrack::insertNewClip ( TrackItem::Type  ,
const juce::String &  name,
TimeRange  position,
SelectionManager selectionManagerToSelectWith 
)

◆ insertNewClip() [3/3]

Clip * engine::ClipTrack::insertNewClip ( TrackItem::Type  ,
const juce::String &  name,
ClipPosition  position,
SelectionManager selectionManagerToSelectWith 
)

◆ insertWaveClip() [1/2]

juce::ReferenceCountedObjectPtr< WaveAudioClip > engine::ClipTrack::insertWaveClip ( const juce::String &  name,
const juce::File &  sourceFile,
ClipPosition  position,
bool  deleteExistingClips 
)

◆ insertWaveClip() [2/2]

juce::ReferenceCountedObjectPtr< WaveAudioClip > engine::ClipTrack::insertWaveClip ( const juce::String &  name,
ProjectItemRef  sourceID,
ClipPosition  position,
bool  deleteExistingClips 
)

◆ insertMIDIClip() [1/2]

juce::ReferenceCountedObjectPtr< MidiClip > engine::ClipTrack::insertMIDIClip ( TimeRange  position,
SelectionManager selectionManagerToSelectWith 
)

◆ insertMIDIClip() [2/2]

juce::ReferenceCountedObjectPtr< MidiClip > engine::ClipTrack::insertMIDIClip ( const juce::String &  name,
TimeRange  position,
SelectionManager selectionManagerToSelectWith 
)

◆ insertEditClip()

juce::ReferenceCountedObjectPtr< EditClip > engine::ClipTrack::insertEditClip ( TimeRange  position,
ProjectItemRef  sourceID 
)

◆ deleteRegion()

void engine::ClipTrack::deleteRegion ( TimeRange  ,
SelectionManager  
)

◆ deleteRegionOfClip()

void engine::ClipTrack::deleteRegionOfClip ( Clip::Ptr  ,
TimeRange  ,
SelectionManager  
)

◆ splitClip()

Clip * engine::ClipTrack::splitClip ( Clip ,
TimePosition   
)

breaks a clip into 2 bits

◆ splitAt()

void engine::ClipTrack::splitAt ( TimePosition  )

split all clips at this time

◆ insertSpace()

void engine::ClipTrack::insertSpace ( TimePosition  ,
TimeDuration   
)

Inserts space at the given time, moving clips whose center is after that point.

◆ getNextTimeOfInterest()

TimePosition engine::ClipTrack::getNextTimeOfInterest ( TimePosition  afterThisTime)

finds the next cut point

◆ getPreviousTimeOfInterest()

TimePosition engine::ClipTrack::getPreviousTimeOfInterest ( TimePosition  beforeThisTime)

◆ containsPlugin()

bool engine::ClipTrack::containsPlugin ( const Plugin ) const
overridevirtual

Tests whether this Track or a clip on it contains the given plugin.


Reimplemented from engine::Track.

◆ getAllPlugins()

Plugin::Array engine::ClipTrack::getAllPlugins ( ) const
overridevirtual

Returns all pugins on this Track.

Subclasses may implement this to also return Plugin[s] on Clip[s]

Reimplemented from engine::Track.

◆ sendMirrorUpdateToAllPlugins()

void engine::ClipTrack::sendMirrorUpdateToAllPlugins ( Plugin changedPlugin) const
overridevirtual

Sends a message to all plugins that the given plugin has changed.

Reimplemented from engine::Track.

◆ areAnyClipsUsingFile()

bool engine::ClipTrack::areAnyClipsUsingFile ( const AudioFile )

◆ containsAnyMIDIClips()

bool engine::ClipTrack::containsAnyMIDIClips ( ) const

◆ getClipOwnerState()

juce::ValueTree & engine::ClipTrack::getClipOwnerState ( )
overridevirtual

Implements engine::ClipOwner.

◆ getClipOwnerID()

EditItemID engine::ClipTrack::getClipOwnerID ( )
overridevirtual

Implements engine::ClipOwner.

◆ getClipOwnerSelectable()

Selectable * engine::ClipTrack::getClipOwnerSelectable ( )
overridevirtual

Implements engine::ClipOwner.

◆ getClipOwnerEdit()

Edit & engine::ClipTrack::getClipOwnerEdit ( )
overridevirtual

Implements engine::ClipOwner.

◆ clipCreated()

void engine::ClipTrack::clipCreated ( Clip )
overridevirtual

Implements engine::ClipOwner.

◆ clipAddedOrRemoved()

void engine::ClipTrack::clipAddedOrRemoved ( )
overridevirtual

Implements engine::ClipOwner.

◆ clipOrderChanged()

void engine::ClipTrack::clipOrderChanged ( )
overridevirtual

Implements engine::ClipOwner.

◆ clipPositionChanged()

void engine::ClipTrack::clipPositionChanged ( )
overridevirtual

Implements engine::ClipOwner.

◆ findAllTimesOfInterest()

juce::Array< TimePosition > engine::ClipTrack::findAllTimesOfInterest ( )
protected

◆ refreshTrackItems()

void engine::ClipTrack::refreshTrackItems ( ) const
protected

Member Data Documentation

◆ collectionClipList

std::unique_ptr<CollectionClipList> engine::ClipTrack::collectionClipList
protected

◆ trackItemsDirty

bool engine::ClipTrack::trackItemsDirty = false
mutableprotected

◆ trackItems

juce::Array<TrackItem*> engine::ClipTrack::trackItems
mutableprotected

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