tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
tracktion::engine::WaveCompManager Class Reference
Inheritance diagram for tracktion::engine::WaveCompManager:
tracktion::engine::CompManager juce::Timer juce::SingleThreadedReferenceCountedObject juce::ValueTree::Listener

Classes

struct  CompRenderContext
 
struct  CompUpdater
 Updates a strip during a comp render and notifies the Clip when it finishes. More...
 
struct  FlattenRetrier
 Re-calls flatten take to allow the comp time to finish rendering if needed. More...
 

Public Types

using Ptr = juce::ReferenceCountedObjectPtr< WaveCompManager >
 
- Public Types inherited from tracktion::engine::CompManager
using Ptr = juce::ReferenceCountedObjectPtr< CompManager >
 

Public Member Functions

 WaveCompManager (WaveAudioClip &)
 
void updateThumbnails (juce::Component &, juce::OwnedArray< SmartThumbnail > &thumbnails) const
 Updates an array of thumbnails so they represent the takes and are in the correct order etc.
 
juce::File getCurrentCompFile () const
 Returns the current comp file.
 
HashCode getBaseTakeHash (int takeIndex) const override
 
double getTakeLength (int takeIndex) const override
 
double getOffset () const override
 
double getLoopLength () const override
 
bool getAutoTempo () override
 
double getSourceTempo () override
 
juce::String getWarning () override
 
float getRenderProgress () const override
 
void triggerCompRender () override
 Triggers the render of the comp.
 
void flattenTake (int takeIndex, bool deleteSourceFiles) override
 Should flatten the comp and remove all other takes.
 
juce::ValueTree pasteComp (const juce::ValueTree &compTree) override
 Pastes an existing comp to this manager and returns the newly added tree.
 
void setStripToUpdate (juce::Component *strip) override
 Sets a component to be updated during render processes.
 
juce::ValueTree addNewComp () override
 Adds a new comp to the end of the takes list optionally making it active.
 
CompRenderContextcreateRenderContext () const
 Returns a context to render the current taste of this comp.
 
- Public Member Functions inherited from tracktion::engine::CompManager
 CompManager (Clip &, const juce::ValueTree &)
 Creates a CompManager for a given clip.
 
 ~CompManager () override
 Destructor.
 
virtual void initialise ()
 
virtual void discardCachedData ()
 
ClipgetClip () const noexcept
 
bool shouldDisplayWarning () const noexcept
 Returns true if the source should display a warning about using multi-tempo changes.
 
juce::ValueTree getSection (int takeIndex, int sectionIndex) const
 Returns the section at the given index of a given take.
 
juce::ValueTree findSectionAtTime (double time)
 Returns either the section for the current comp at a given time or if a whole take is being used the take.
 
int findSectionWithEndTime (juce::Range< double > range, int takeIndex, bool &timeFoundAtStartOfSection) const
 Returns the index of the section whose end lies within the given time range.
 
juce::Range< doublegetSectionTimes (const juce::ValueTree &) const
 Returns the time range a given section occupies for a given take.
 
juce::ValueTree getTakesTree ()
 
void setActiveTakeIndex (int index)
 Sets the active take index.
 
int getActiveTakeIndex () const
 Returns the active take index.
 
juce::ValueTree getActiveTakeTree () const
 Returns the active take tree.
 
int getNumTakes () const
 Returns the number of takes that are not comps.
 
int getNumComps () const
 Returns the number of comps that are comps.
 
int getTotalNumTakes () const
 Returns the total number of takes including comp takes.
 
bool isTakeComp (int takeIndex) const
 Returns true if the given take at an index is a comp.
 
bool isTakeComp (const juce::ValueTree &takeTree) const
 Returns true if the given take is a comp.
 
bool isCurrentTakeComp () const
 Returns true if the current take is a comp.
 
juce::String getTakeName (int index) const
 Returns the name of a take.
 
double getMaxCompLength () const
 Returns the maximum length that a comp can be.
 
juce::Range< doublegetCompRange () const
 Returns the time range available for comping i.e.
 
double getSpeedRatio () const
 Returns the effective speed ratio used for displaying waveforms.
 
double getSourceTimeMultiplier () const
 Returns the current time multiplier in use by the source, either the speed ratio or auto tempo ratio.
 
HashCode getTakeHash (int takeIndex) const
 Returns a hash code representing a take.
 
void changeSectionIndexAtTime (double time, int takeIndex)
 Changes the index of the active comp's section at a given time.
 
void removeSectionIndexAtTime (double time, int takeIndex)
 Removes a section from the comp at the given time if the section is at the given take index.
 
void moveSectionEndTime (juce::ValueTree &section, double newTime)
 Moves a section's end time to the new time specified.
 
void moveSection (juce::ValueTree &section, double timeDelta)
 Moves a section by the specified time delta also moving the previous section's end time by the same ammount.
 
void moveSectionToEndAt (juce::ValueTree &section, double newEndTime)
 Moves a section to an absolute end time also moving the previous section's end time by the same ammount.
 
juce::ValueTree addSection (int takeIndex, double endTime)
 Adds a new section at a given time and returns the index of it.
 
void removeSection (const juce::ValueTree &sectionToRemove)
 Removes a section from the active comp if it is within range.
 
juce::ValueTree splitSectionAtTime (double time)
 Find the current section at the given time and splits it in two ready for a new comp section.
 
void removeSectionsWithinRange (juce::Range< double > timeRange, const juce::ValueTree &sectionToKeep)
 Removes all sections which lie within the given time range.
 
- Public Member Functions inherited from juce::SingleThreadedReferenceCountedObject
void incReferenceCount () noexcept
 
void decReferenceCount () noexcept
 
bool decReferenceCountWithoutDeleting () noexcept
 
int getReferenceCount () const noexcept
 

Static Public Member Functions

static bool renderTake (CompRenderContext &, AudioFileWriter &, juce::ThreadPoolJob &, std::atomic< float > &progress)
 Renders the comp using the given writer and ThreadPoolJob.
 

Additional Inherited Members

- Protected Member Functions inherited from tracktion::engine::CompManager
juce::UndoManagergetUndoManager () const
 
void keepSectionsSortedAndInRange ()
 
juce::ValueTree getNewCompTree () const
 
- Protected Member Functions inherited from juce::SingleThreadedReferenceCountedObject
 SingleThreadedReferenceCountedObject (const SingleThreadedReferenceCountedObject &)
 
 SingleThreadedReferenceCountedObject (SingleThreadedReferenceCountedObject &&)
 
SingleThreadedReferenceCountedObjectoperator= (const SingleThreadedReferenceCountedObject &)
 
SingleThreadedReferenceCountedObjectoperator= (SingleThreadedReferenceCountedObject &&)
 
- Protected Attributes inherited from tracktion::engine::CompManager
juce::ValueTree takesTree
 
int lastRenderedTake
 
HashCode lastHash
 
double maxCompLength
 
double effectiveTimeMultiplier
 
double lastOffset
 
double lastTimeRatio
 

Detailed Description

Definition at line 244 of file tracktion_CompManager.h.

Member Typedef Documentation

◆ Ptr

Definition at line 248 of file tracktion_CompManager.h.

Constructor & Destructor Documentation

◆ WaveCompManager()

tracktion::engine::WaveCompManager::WaveCompManager ( WaveAudioClip owner)

Definition at line 729 of file tracktion_CompManager.cpp.

◆ ~WaveCompManager()

tracktion::engine::WaveCompManager::~WaveCompManager ( )
override

Definition at line 739 of file tracktion_CompManager.cpp.

Member Function Documentation

◆ addNewComp()

juce::ValueTree tracktion::engine::WaveCompManager::addNewComp ( )
overridevirtual

Adds a new comp to the end of the takes list optionally making it active.

This is essentially a new take with a new ProjectItemID and a single blank section.

Implements tracktion::engine::CompManager.

Definition at line 985 of file tracktion_CompManager.cpp.

◆ createRenderContext()

WaveCompManager::CompRenderContext * tracktion::engine::WaveCompManager::createRenderContext ( ) const

Returns a context to render the current taste of this comp.

Definition at line 1001 of file tracktion_CompManager.cpp.

◆ flattenTake()

void tracktion::engine::WaveCompManager::flattenTake ( int  takeIndex,
bool  deleteSourceFiles 
)
overridevirtual

Should flatten the comp and remove all other takes.

Implements tracktion::engine::CompManager.

Definition at line 828 of file tracktion_CompManager.cpp.

◆ getAutoTempo()

bool tracktion::engine::WaveCompManager::getAutoTempo ( )
overridevirtual

Implements tracktion::engine::CompManager.

Definition at line 783 of file tracktion_CompManager.cpp.

◆ getBaseTakeHash()

HashCode tracktion::engine::WaveCompManager::getBaseTakeHash ( int  takeIndex) const
overridevirtual

Implements tracktion::engine::CompManager.

Definition at line 260 of file tracktion_CompManager.h.

◆ getCurrentCompFile()

juce::File tracktion::engine::WaveCompManager::getCurrentCompFile ( ) const

Returns the current comp file.

Definition at line 767 of file tracktion_CompManager.cpp.

◆ getLoopLength()

double tracktion::engine::WaveCompManager::getLoopLength ( ) const
overridevirtual

Implements tracktion::engine::CompManager.

Definition at line 782 of file tracktion_CompManager.cpp.

◆ getOffset()

double tracktion::engine::WaveCompManager::getOffset ( ) const
overridevirtual

Implements tracktion::engine::CompManager.

Definition at line 781 of file tracktion_CompManager.cpp.

◆ getRenderProgress()

float tracktion::engine::WaveCompManager::getRenderProgress ( ) const
overridevirtual

Reimplemented from tracktion::engine::CompManager.

Definition at line 814 of file tracktion_CompManager.cpp.

◆ getSourceTempo()

double tracktion::engine::WaveCompManager::getSourceTempo ( )
overridevirtual

Implements tracktion::engine::CompManager.

Definition at line 785 of file tracktion_CompManager.cpp.

◆ getTakeLength()

double tracktion::engine::WaveCompManager::getTakeLength ( int  takeIndex) const
overridevirtual

Implements tracktion::engine::CompManager.

Definition at line 776 of file tracktion_CompManager.cpp.

◆ getWarning()

juce::String tracktion::engine::WaveCompManager::getWarning ( )
overridevirtual

Reimplemented from tracktion::engine::CompManager.

Definition at line 791 of file tracktion_CompManager.cpp.

◆ pasteComp()

juce::ValueTree tracktion::engine::WaveCompManager::pasteComp ( const juce::ValueTree compTree)
overridevirtual

Pastes an existing comp to this manager and returns the newly added tree.

Reimplemented from tracktion::engine::CompManager.

Definition at line 890 of file tracktion_CompManager.cpp.

◆ renderTake()

bool tracktion::engine::WaveCompManager::renderTake ( CompRenderContext context,
AudioFileWriter writer,
juce::ThreadPoolJob job,
std::atomic< float > &  progress 
)
static

Renders the comp using the given writer and ThreadPoolJob.

This will return true if the comp was successfully completed or false if it failed. Note that this should only be called for comp takes and will simply return true for full takes.

Definition at line 1009 of file tracktion_CompManager.cpp.

◆ setStripToUpdate()

void tracktion::engine::WaveCompManager::setStripToUpdate ( juce::Component )
overridevirtual

Sets a component to be updated during render processes.

Reimplemented from tracktion::engine::CompManager.

Definition at line 809 of file tracktion_CompManager.cpp.

◆ triggerCompRender()

void tracktion::engine::WaveCompManager::triggerCompRender ( )
overridevirtual

Triggers the render of the comp.

Call this when you change the comp in some way.

Implements tracktion::engine::CompManager.

Definition at line 819 of file tracktion_CompManager.cpp.

◆ updateThumbnails()

void tracktion::engine::WaveCompManager::updateThumbnails ( juce::Component comp,
juce::OwnedArray< SmartThumbnail > &  thumbnails 
) const

Updates an array of thumbnails so they represent the takes and are in the correct order etc.

Definition at line 741 of file tracktion_CompManager.cpp.


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