11namespace tracktion {
inline namespace engine
20 private EditSnapshot::Listener
44 bool isMidi()
const override {
return false; }
47 double getCurrentStretchRatio()
const;
53 HashCode
getHash()
const override {
return hash; }
74 RenderOptions& getRenderOptions() const noexcept {
jassert (renderOptions !=
nullptr);
return *renderOptions; }
76 ProjectItem::Ptr createUniqueCopy();
77 HashCode generateHash();
90 EditSnapshot::Ptr editSnapshot;
96 bool sourceMediaReEntrancyCheck =
false;
99 void updateWaveInfo();
100 void updateReferencedEdits();
101 void updateLoopInfoBasedOnSource (
bool updateLength);
Base class for Clips that produce some kind of audio e.g.
Base class for items that can contain clips.
This is the main source of an Edit clip and is responsible for managing its properties.
bool canHaveEffects() const override
Returns true if this clip can have ClipEffects added to it.
void sourceMediaChanged() override
Called when the source media file reference (attribute "source") has changed - i.e.
AudioFileInfo getWaveInfo() override
Returns the AudioFileInfo for an edit clip.
bool usesSourceFile() const override
True if it references a source file - i.e.
bool isMidi() const override
Returns true if this is a MidiClip.
juce::String getRenderMessage() override
Override this to return a custom message to be displayed over waveforms during rendering.
TimeDuration getSourceLength() const override
Must return the length in seconds of the source material e.g.
juce::String getSelectableDescription() override
Subclasses must return a description of what they are.
void initialise() override
Initialises the Clip.
bool needsRender() const override
Subclasses should override this to return true if they need the rest of the render callbacks.
RenderManager::Job::Ptr getRenderJob(const AudioFile &destFile) override
Subclasses should override this to return a RenderJob suitable for rendering its source file.
void renderComplete() override
Callback to indicate that the render has completed.
void cloneFrom(Clip *) override
Clones the given clip to this clip.
juce::String getClipMessage() override
Override this to return a custom message to display over the clip where the "file missing" text usual...
void changed() override
This should be called to send a change notification to any SelectableListeners that are registered wi...
EditSnapshot::Ptr getEditSnapshot() noexcept
Returns the cached EditSnapshot that represents the current state of the source.
void setLoopDefaults() override
Override this to fill in the LoopInfo structure as best fits the source.
AudioFile getAudioFile() const override
Returns the file used to play back the source and will get proxied etc.
juce::File getOriginalFile() const override
Must return the file that the source ProjectItemID refers to.
bool isUsingFile(const AudioFile &af) override
Should return true if the clip is referencing the file in any way.
HashCode getHash() const override
Must return a unique hash for this clip's source.
Holds a snapshot of an Edit file of the last time it was saved.
An ID representing one of the items in a Project.
Represents a set of user properties used to control a render operation, using a ValueTree to hold the...
Represents a duration in real-life time.
Asyncronously call a function.
ID for objects of type EditElement - e.g.