TracktionEngine
Public Member Functions | Protected Member Functions | List of all members
tracktion::engine::ChordClip Class Reference
Inheritance diagram for tracktion::engine::ChordClip:

Public Member Functions

 ChordClip (const juce::ValueTree &, EditItemID, ClipOwner &targetParent)
 
 ~ChordClip () override
 
juce::String getSelectableDescription () override
 Subclasses must return a description of what they are. More...
 
bool canBeAddedTo (ClipOwner &) override
 Tests whether this clip can go on the given parent. More...
 
juce::Colour getColour () const override
 Returns the colour property of this clip. More...
 
juce::Colour getDefaultColour () const override
 Returns the default colour for this clip. More...
 
void initialise () override
 Initialises the Clip. More...
 
bool isMidi () const override
 Returns true if this is a MidiClip. More...
 
bool isMuted () const override
 Returns true if the clip is muted. More...
 
PatternGeneratorgetPatternGenerator () override
 Returns the PatternGenerator for this clip if it has one. More...
 
void pitchTempoTrackChanged () override
 Called when there are pitch or tempo changes made which might require clips to adjust timing information. More...
 
- Public Member Functions inherited from tracktion::engine::Clip
 Clip (const juce::ValueTree &, ClipOwner &, EditItemID, Type)
 Creates a clip of a given type from a ValueTree state. More...
 
 ~Clip () override
 Destructor. More...
 
virtual void flushStateToValueTree ()
 Can be overridden to ensure any state (e.g. More...
 
virtual void sourceMediaChanged ()
 Called when the source media file reference (attribute "source") has changed - i.e. More...
 
virtual juce::String getName () const override
 Returns the name of the clip. More...
 
void setName (const juce::String &newName)
 Sets a new name for a clip. More...
 
virtual bool usesSourceFile () const
 True if it references a source file - i.e. More...
 
SourceFileReferencegetSourceFileReference ()
 Returns the SourceFileReference of the Clip. More...
 
juce::File getCurrentSourceFile () const
 Returns the current source file, this is different to the SourceFileReference as it could be a temporary comp file, clipFX, reverse render etc. More...
 
juce::Array< ReferencedItemgetReferencedItems () override
 Returns an array of any ReferencedItem[s] e.g. More...
 
void reassignReferencedItem (const ReferencedItem &, ProjectItemID, double) override
 Should be implemented to change the underlying source to a new ProjectItemID. More...
 
ClipPosition getPosition () const override
 Returns the ClipPosition on the parent Track. More...
 
BeatPosition getContentBeatAtTime (TimePosition) const
 Returns the beat number (with offset) at the given time. More...
 
TimePosition getTimeOfContentBeat (BeatPosition) const
 Returns time of a beat number. More...
 
virtual TimeDuration getMaximumLength ()
 Returns the maximum length this clip can have. More...
 
virtual juce::Array< TimePosition > getInterestingTimes ()
 Returns times for snapping to, relative to the Edit. More...
 
TimePosition getSpottingPoint () const
 Returns the first marked time in the source file which can be used for syncronising newly added clips. More...
 
virtual bool canLoop () const
 Returns true if this clip is capable of looping. More...
 
virtual bool isLooping () const
 Returns true if this clip is currently looping. More...
 
virtual bool beatBasedLooping () const
 Returns true if this clip's looping is based on beats or false if absolute time. More...
 
virtual void setNumberOfLoops (int)
 Sets the clip looping a number of times. More...
 
virtual void disableLooping ()
 Disables all looping. More...
 
virtual BeatPosition getLoopStartBeats () const
 Returns the beat position of the loop start point. More...
 
virtual TimePosition getLoopStart () const
 Returns the start time of the loop start point. More...
 
virtual BeatDuration getLoopLengthBeats () const
 Returns the length of loop in beats. More...
 
virtual TimeDuration getLoopLength () const
 Returns the length of loop in seconds. More...
 
TimeRange getLoopRange () const
 Returns the loop range in seconds. More...
 
BeatRange getLoopRangeBeats () const
 Returns the loop range in beats. More...
 
virtual void setLoopRange (TimeRange)
 Sets the loop range the clip should use in seconds. More...
 
virtual void setLoopRangeBeats (BeatRange)
 Sets the loop range the clip should use in beats. More...
 
virtual void setMuted (bool)
 Mutes or unmutes the clip. More...
 
virtual void setSyncType (SyncType sync)
 Sets the sync type for the clip. More...
 
SyncType getSyncType () const
 Returns the sync type clip is using. More...
 
void setPosition (ClipPosition newPosition)
 Sets the position of the clip. More...
 
void setStart (TimePosition newStart, bool preserveSync, bool keepLength)
 Sets the start time of the clip. More...
 
void setLength (TimeDuration newLength, bool preserveSync)
 Sets the length of the clip. More...
 
void setEnd (TimePosition newEnd, bool preserveSync)
 Sets the end of the clip. More...
 
void setOffset (TimeDuration newOffset)
 Sets the offset of the clip, i.e. More...
 
void trimAwayOverlap (TimeRange editRangeToTrim)
 Trims away any part of the clip that overlaps this region. More...
 
void removeFromParent ()
 Removes this clip from the parent track or container clip. More...
 
bool moveTo (ClipOwner &)
 Moves the clip to a new parent (if possible). More...
 
double getSpeedRatio () const noexcept
 Returns the speed ratio i.e. More...
 
virtual void setSpeedRatio (double)
 Sets a speed ratio i.e. More...
 
virtual void rescale (TimePosition pivotTimeInEdit, double factor)
 stretches and scales this clip relative to a fixed point in the edit. More...
 
bool isGrouped () const override
 Returns true if the clip is part of a group. More...
 
TrackItemgetGroupParent () const override
 Returns the parent TrackItem if part of a group. More...
 
void setGroup (EditItemID newGroupID)
 Sets the clip to be part of a group. More...
 
EditItemID getGroupID () const noexcept
 Returns the ID of the group. More...
 
CollectionClipgetGroupClip () const
 Returns this as a CollectionClip if it is one. More...
 
bool isLinked () const
 Returns true if this clip is linked with any others. More...
 
void setLinkGroupID (juce::String newLinkID)
 Sets the link ID to link this clip with others. More...
 
juce::String getLinkGroupID () const
 Returns the link ID of this clip. More...
 
ClipOwnergetParent () const
 Returns the parent ClipOwner this clip is on. More...
 
ClipTrackgetClipTrack () const
 Returns the parent ClipTrack this clip is on (if any). More...
 
TrackgetTrack () const override
 Returns the parent Track this clip is on (if any). More...
 
void setColour (juce::Colour col)
 Sets the colour property of this clip. More...
 
virtual void removePlugin (const Plugin::Ptr &)
 Removes the given plugin from the clip if the clip supports plugins. More...
 
virtual bool addClipPlugin (const Plugin::Ptr &, SelectionManager &)
 Adds a plugin to the clip. More...
 
virtual Plugin::Array getAllPlugins ()
 Returns all the plugins on the clip. More...
 
virtual void sendMirrorUpdateToAllPlugins (Plugin &) const
 Sends an update to all plugins mirroing the one passed in. More...
 
virtual PluginListgetPluginList ()
 Returns the PluginList for this clip if it has one. More...
 
virtual void clearTakes ()
 Clears any takes this clip has. More...
 
virtual bool hasAnyTakes () const
 Returns true if this clip has any takes. More...
 
virtual juce::StringArray getTakeDescriptions () const
 Returns the descriptions of any takes. More...
 
virtual void setCurrentTake (int)
 Sets a given take index to be the current take. More...
 
virtual int getCurrentTake () const
 Returns the current take index. More...
 
virtual int getNumTakes (bool)
 Returns the total number of takes. More...
 
virtual bool isCurrentTakeComp ()
 Returns true if the current take is a comp. More...
 
virtual void setShowingTakes (bool shouldShow)
 Sets whether the clip should be showing takes. More...
 
virtual bool isShowingTakes () const
 Returns true if the clip is showing takes. More...
 
virtual Clip::Array unpackTakes (bool)
 Attempts to unpack the takes to new clips. More...
 
virtual void cloneFrom (Clip *)
 Clones the given clip to this clip. More...
 
void updateLinkedClips ()
 Triggers a call to cloneFrom for all clips with the same linkID. More...
 
void addListener (Listener *)
 Adds a Listener. More...
 
void removeListener (Listener *)
 Removes a Listener. More...
 
juce::ListenerList< Listener > & getListeners ()
 Returns the listener list so Nodes can manually call them. More...
 
void changed () override
 
juce::UndoManager * getUndoManager () const
 Returns the UndoManager. More...
 
virtual void setParent (ClipOwner *)
 
- Public Member Functions inherited from tracktion::engine::TrackItem
 TrackItem (Edit &, EditItemID, Type)
 Creates a TrackItem with an ID and type. More...
 
 ~TrackItem ()
 Destructor. More...
 
TimeRange getEditTimeRange () const
 Returns the time range of this item. More...
 
BeatRange getEditBeatRange () const
 Returns the beat range of this item. More...
 
BeatPosition getStartBeat () const
 Returns the start beat in the Edit of this item. More...
 
BeatPosition getContentStartBeat () const
 Returns the start beat of the content in the Edit of this item. More...
 
BeatPosition getEndBeat () const
 Returns the end beat in the Edit of this item. More...
 
BeatDuration getLengthInBeats () const
 Returns the duration in beats the of this item. More...
 
TimePosition getTimeOfRelativeBeat (BeatDuration) const
 Returns an Edit time point for a given number of beats from the start of this item. More...
 
BeatPosition getBeatOfRelativeTime (TimeDuration) const
 Returns an Edit beat point for a given number of seconds from the start of this item. More...
 
BeatDuration getOffsetInBeats () const
 Returns an the offset of this item in beats. More...
 
EditItemID getTrackID () const
 Returns the ID of the Track this item lives on. More...
 
- Public Member Functions inherited from tracktion::engine::EditItem
 EditItem (EditItemID, Edit &)
 
virtual ~EditItem ()=default
 
- Public Member Functions inherited from tracktion::engine::Selectable
 Selectable ()
 
virtual ~Selectable ()
 
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected. More...
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. More...
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions. More...
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 
- Public Member Functions inherited from tracktion::engine::Exportable
virtual ~Exportable ()=default
 

Protected Member Functions

void handleAsyncUpdate () override
 
void valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override
 
void valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &) override
 
void valueTreeChildRemoved (juce::ValueTree &, juce::ValueTree &, int) override
 
void valueTreeParentChanged (juce::ValueTree &) override
 
- Protected Member Functions inherited from tracktion::engine::Clip
void setCurrentSourceFile (const juce::File &)
 Sets a new source file for this clip. More...
 
virtual juce::Array< TimePosition > getRescaledMarkPoints () const
 Returns the mark points relative to the start of the clip, rescaled to the current speed. More...
 
void valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override
 
void valueTreeParentChanged (juce::ValueTree &) override
 

Additional Inherited Members

- Public Types inherited from tracktion::engine::Clip
enum  SyncType { syncBarsBeats = 0 , syncAbsolute }
 Determines the clip sync type. More...
 
using Ptr = juce::ReferenceCountedObjectPtr< Clip >
 
using Array = juce::ReferenceCountedArray< Clip >
 
- Public Types inherited from tracktion::engine::TrackItem
enum class  Type {
  unknown , wave , midi , edit ,
  step , marker , pitch , timeSig ,
  collection , video , recording , chord ,
  arranger , container
}
 Defines the types of item that can live on Track[s]. More...
 
- Public Types inherited from tracktion::engine::Selectable
using WeakRef = juce::WeakReference< Selectable >
 
- Static Public Member Functions inherited from tracktion::engine::Clip
static bool isClipState (const juce::ValueTree &)
 Checks whether a ValueTree is some kind of clip state. More...
 
static bool isClipState (const juce::Identifier &)
 Checks whether a ValueTree type is some kind of clip state. More...
 
static Ptr createClipForState (const juce::ValueTree &, ClipOwner &targetParent)
 Creates a clip for a given ValueTree representation. More...
 
- Static Public Member Functions inherited from tracktion::engine::TrackItem
static const char * typeToString (Type)
 Returns the string version of a TrackItem::Type. More...
 
static juce::Identifier clipTypeToXMLType (Type)
 Returns an Identifier version of a TrackItem::Type. More...
 
static TrackItem::Type xmlTagToType (juce::StringRef)
 Returns the TrackItem::Type of a type string. More...
 
static TrackItem::Type stringToType (const juce::String &)
 Returns the TrackItem::Type of a type string. More...
 
static juce::String getSuggestedNameForNewItem (Type)
 Returns a text string for a new clip of the given type. More...
 
template<typename ArrayType >
static void sortByTime (ArrayType &items)
 Helper function to sort an array of TrackItem[s] by their start time. More...
 
template<typename ArrayType >
static void stableSortByTime (ArrayType &items)
 Helper function to sort an array of TrackItem[s] by their start time without changing the order of items at the same time. More...
 
- Static Public Member Functions inherited from tracktion::engine::Selectable
static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted. More...
 
- Static Public Member Functions inherited from tracktion::engine::Exportable
static juce::Array< Exportable * > addAllExportables (Edit &)
 Returns all the Exportables contained in an Edit. More...
 
- Public Attributes inherited from tracktion::engine::Clip
juce::ValueTree state
 The ValueTree of the Clip state. More...
 
juce::CachedValue< juce::Colour > colour
 The colour property. More...
 
- Public Attributes inherited from tracktion::engine::TrackItem
const Type type
 The type of this item. More...
 
- Public Attributes inherited from tracktion::engine::EditItem
Editedit
 
const EditItemID itemID
 Every EditItem has an ID which is unique within the edit. More...
 
- Public Attributes inherited from tracktion::engine::Selectable
WeakRef::Master masterReference
 
- Protected Attributes inherited from tracktion::engine::Clip
bool isInitialised = false
 
bool cloneInProgress = false
 
juce::CachedValue< juce::String > clipName
 
ClipOwnerparent = nullptr
 
juce::CachedValue< TimePosition > clipStart
 
juce::CachedValue< TimeDuration > length
 
juce::CachedValue< TimeDuration > offset
 
juce::CachedValue< double > speedRatio
 
SourceFileReference sourceFileReference
 
juce::CachedValue< EditItemIDgroupID
 
juce::CachedValue< juce::String > linkID
 
juce::File currentSourceFile
 
juce::CachedValue< SyncTypesyncType
 
juce::CachedValue< bool > showingTakes
 
std::unique_ptr< PatternGeneratorpatternGenerator
 
AsyncCaller updateLinkedClipsCaller
 
juce::ListenerList< Listenerlisteners
 

Constructor & Destructor Documentation

◆ ChordClip()

tracktion::engine::ChordClip::ChordClip ( const juce::ValueTree &  ,
EditItemID  ,
ClipOwner targetParent 
)

◆ ~ChordClip()

tracktion::engine::ChordClip::~ChordClip ( )
override

Member Function Documentation

◆ getSelectableDescription()

juce::String tracktion::engine::ChordClip::getSelectableDescription ( )
overridevirtual

Subclasses must return a description of what they are.

Implements tracktion::engine::Selectable.

◆ canBeAddedTo()

bool tracktion::engine::ChordClip::canBeAddedTo ( ClipOwner )
overridevirtual

Tests whether this clip can go on the given parent.

Implements tracktion::engine::Clip.

◆ getColour()

juce::Colour tracktion::engine::ChordClip::getColour ( ) const
overridevirtual

Returns the colour property of this clip.

Reimplemented from tracktion::engine::Clip.

◆ getDefaultColour()

juce::Colour tracktion::engine::ChordClip::getDefaultColour ( ) const
overridevirtual

Returns the default colour for this clip.

Implements tracktion::engine::Clip.

◆ initialise()

void tracktion::engine::ChordClip::initialise ( )
overridevirtual

Initialises the Clip.

Called once automatically after construction.

Reimplemented from tracktion::engine::Clip.

◆ isMidi()

bool tracktion::engine::ChordClip::isMidi ( ) const
overridevirtual

Returns true if this is a MidiClip.

Implements tracktion::engine::Clip.

◆ isMuted()

bool tracktion::engine::ChordClip::isMuted ( ) const
overridevirtual

Returns true if the clip is muted.

Implements tracktion::engine::Clip.

◆ getPatternGenerator()

PatternGenerator* tracktion::engine::ChordClip::getPatternGenerator ( )
overridevirtual

Returns the PatternGenerator for this clip if it has one.

See also
MidiClip

Reimplemented from tracktion::engine::Clip.

◆ pitchTempoTrackChanged()

void tracktion::engine::ChordClip::pitchTempoTrackChanged ( )
overridevirtual

Called when there are pitch or tempo changes made which might require clips to adjust timing information.

Reimplemented from tracktion::engine::Clip.

◆ handleAsyncUpdate()

void tracktion::engine::ChordClip::handleAsyncUpdate ( )
overrideprotected

◆ valueTreePropertyChanged()

void tracktion::engine::ChordClip::valueTreePropertyChanged ( juce::ValueTree &  ,
const juce::Identifier &   
)
overrideprotected

◆ valueTreeChildAdded()

void tracktion::engine::ChordClip::valueTreeChildAdded ( juce::ValueTree &  ,
juce::ValueTree &   
)
overrideprotected

◆ valueTreeChildRemoved()

void tracktion::engine::ChordClip::valueTreeChildRemoved ( juce::ValueTree &  ,
juce::ValueTree &  ,
int   
)
overrideprotected

◆ valueTreeParentChanged()

void tracktion::engine::ChordClip::valueTreeParentChanged ( juce::ValueTree &  )
overrideprotected

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