11namespace tracktion {
inline namespace engine
35 int getNumCollectionClips()
const noexcept;
56 TimeRange getTotalRange()
const;
59 bool addClip (
const Clip::Ptr&);
66 bool deleteExistingClips,
67 bool allowSpottingAdjustment);
104 bool areAnyClipsUsingFile (
const AudioFile&);
105 bool containsAnyMIDIClips()
const;
129 struct CollectionClipList;
130 friend struct CollectionClipList;
133 void refreshTrackItems()
const;
135 mutable bool trackItemsDirty =
false;
Base class for items that can contain clips.
void flushStateToValueTree() override
Flushes all plugin states on the track to the state object.
Clip * findClipForID(EditItemID) const override
Returns a clip one with a matching ID can be found on this Track.
TimePosition getNextTimeOfInterest(TimePosition afterThisTime)
finds the next cut point
TrackItem * getTrackItem(int idx) const override
Should return the TrackItem at the given index.
EditItemID getClipOwnerID() override
Must return the ID of this ClipOwner.
void clipAddedOrRemoved() override
Called when a clip is added or removed.
Edit & getClipOwnerEdit() override
Must return the Edit this ClipOwner belongs to.
void sendMirrorUpdateToAllPlugins(Plugin &) const override
Sends a message to all plugins that the given plugin has changed.
void clipPositionChanged() override
Called when a clip start or end position has changed.
void insertSpaceIntoTrack(TimePosition, TimeDuration) override
inserts space and moves everything up
void initialise() override
Initialises the Track.
int getNumTrackItems() const override
Should return the number of TrackItem[s] on this Track.
Plugin::Array getAllPlugins() const override
Returns all pugins on this Track.
Clip * splitClip(Clip &, TimePosition)
breaks a clip into 2 bits
juce::ValueTree & getClipOwnerState() override
Must return the state of this ClipOwner.
TrackItem * getNextTrackItemAt(TimePosition) override
Should return the TrackItem after this time.
void splitAt(TimePosition)
split all clips at this time
void clipOrderChanged() override
Called when clips have moved times so that their order has changed.
bool containsPlugin(const Plugin *) const override
Tests whether this Track or a clip on it contains the given plugin.
int indexOfTrackItem(TrackItem *) const override
Should return the index of the given TrackItem.
void clipCreated(Clip &) override
Called when a clip is created which could be during Edit load.
int getIndexOfNextTrackItemAt(TimePosition) override
Should return the index of the TrackItem after this time.
Selectable * getClipOwnerSelectable() override
Must return the selectable if this ClipOwner is one.
The Tracktion Edit class!
An ID representing one of the items in a Project.
Base class for things that can be selected, and whose properties can appear in the properties panel.
Manages a list of items that are currently selected.
Base class for EditItems that live in a Track, e.g.
Type
Defines the types of item that can live on Track[s].
Base class for tracks which contain clips and plugins and can be added to Edit[s].
MidiClip::Ptr insertMIDIClip(ClipOwner &parent, const juce::String &name, TimeRange position)
Inserts a new MidiClip into the ClipOwner's clip list.
juce::ReferenceCountedObjectPtr< WaveAudioClip > insertWaveClip(ClipOwner &parent, const juce::String &name, const juce::File &sourceFile, ClipPosition position, DeleteExistingClips deleteExistingClips)
Inserts a new WaveAudioClip into the ClipOwner's clip list.
Clip * insertNewClip(ClipOwner &parent, TrackItem::Type type, const juce::String &name, EditTimeRange pos)
Inserts a new clip with the given type and name.
Clip * insertClipWithState(ClipOwner &clipOwner, juce::ValueTree clipState)
Inserts a clip with the given state in to the ClipOwner's clip list.
Represents a duration in real-life time.
Represents a position in real-life time.
Represents the position of a clip on a timeline.
ID for objects of type EditElement - e.g.