TracktionEngine
Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
tracktion::engine::RenderManager::Job Class Referenceabstract

The base class that all generator jobs derive from. More...

Inheritance diagram for tracktion::engine::RenderManager::Job:

Classes

struct  Listener
 

Public Types

using Ptr = juce::ReferenceCountedObjectPtr< Job >
 

Public Member Functions

 ~Job () override
 
JobStatus runJob () override
 Performs the render. More...
 
float getCurrentTaskProgress () override
 Returns the progress of the job. More...
 
void cancelJob ()
 Cancels the current job safely making sure any listeners are called appropriately. More...
 
void cleanUpDanglingJob ()
 Called during app shutdown by the manager on any jobs that haven't had a chance to recieve their async completion callbacks. More...
 
void incReferenceCount () noexcept
 
bool decReferenceCountWithoutDeleting () noexcept
 
int getReferenceCount () const noexcept
 
void addListener (Listener *l)
 
void removeListener (Listener *l)
 
virtual bool setUpRender ()=0
 Subclasses should override this to set-up their render process. More...
 
virtual bool renderNextBlock ()=0
 During a render process this will be repeatedly called. More...
 
virtual bool completeRender ()=0
 This is called once after all the render blocks have completed. More...
 
- Public Member Functions inherited from tracktion::engine::ThreadPoolJobWithProgress
 ThreadPoolJobWithProgress (const juce::String &name)
 
 ~ThreadPoolJobWithProgress ()
 
virtual bool canCancel () const
 
void setManager (BackgroundJobManager &)
 
void setName (const juce::String &newName)
 Sets the job's name but also updates the manager so the list will reflect it. More...
 
void prepareForJobDeletion ()
 Call this in your sub-class destructor to to remvoe it from the manager queue before this class's destructor is called which can result in a pure virtual call. More...
 

Public Attributes

Engineengine
 
AudioFile proxy
 
std::atomic< float > progress { 0 }
 

Protected Member Functions

 Job (Engine &, const AudioFile &proxy)
 

Detailed Description

The base class that all generator jobs derive from.

This provides access to the jobs progress and also a listener interface so subclasses can be notified when a job is started or completed.

Member Typedef Documentation

◆ Ptr

using tracktion::engine::RenderManager::Job::Ptr = juce::ReferenceCountedObjectPtr<Job>

Constructor & Destructor Documentation

◆ ~Job()

tracktion::engine::RenderManager::Job::~Job ( )
override

◆ Job()

tracktion::engine::RenderManager::Job::Job ( Engine ,
const AudioFile proxy 
)
protected

Member Function Documentation

◆ runJob()

JobStatus tracktion::engine::RenderManager::Job::runJob ( )
override

Performs the render.

◆ getCurrentTaskProgress()

float tracktion::engine::RenderManager::Job::getCurrentTaskProgress ( )
overridevirtual

Returns the progress of the job.

Implements tracktion::engine::ThreadPoolJobWithProgress.

References progress.

◆ cancelJob()

void tracktion::engine::RenderManager::Job::cancelJob ( )

Cancels the current job safely making sure any listeners are called appropriately.

◆ cleanUpDanglingJob()

void tracktion::engine::RenderManager::Job::cleanUpDanglingJob ( )

Called during app shutdown by the manager on any jobs that haven't had a chance to recieve their async completion callbacks.

◆ incReferenceCount()

void tracktion::engine::RenderManager::Job::incReferenceCount ( )
noexcept

◆ decReferenceCountWithoutDeleting()

bool tracktion::engine::RenderManager::Job::decReferenceCountWithoutDeleting ( )
noexcept

◆ getReferenceCount()

int tracktion::engine::RenderManager::Job::getReferenceCount ( ) const
noexcept

◆ addListener()

void tracktion::engine::RenderManager::Job::addListener ( Listener l)

◆ removeListener()

void tracktion::engine::RenderManager::Job::removeListener ( Listener l)

◆ setUpRender()

virtual bool tracktion::engine::RenderManager::Job::setUpRender ( )
pure virtual

Subclasses should override this to set-up their render process.

Return true if the set-up completed successfully and the rest of the render callbacks should be called, false if there was a problem and the render should be stopped.

Implemented in tracktion::engine::WarpTimeRenderJob, tracktion::engine::ReverseRenderJob, and tracktion::engine::EditRenderJob.

◆ renderNextBlock()

virtual bool tracktion::engine::RenderManager::Job::renderNextBlock ( )
pure virtual

During a render process this will be repeatedly called.

Return true once all the blocks have completed, false if this needs to be called again.

Implemented in tracktion::engine::WarpTimeRenderJob, tracktion::engine::ReverseRenderJob, and tracktion::engine::EditRenderJob.

◆ completeRender()

virtual bool tracktion::engine::RenderManager::Job::completeRender ( )
pure virtual

This is called once after all the render blocks have completed.

Subclasses should override this to finish off their render by closing files and etc. returning true if everything completed successfully, false otherwise.

Implemented in tracktion::engine::WarpTimeRenderJob, tracktion::engine::ReverseRenderJob, and tracktion::engine::EditRenderJob.

Member Data Documentation

◆ engine

Engine& tracktion::engine::RenderManager::Job::engine

◆ proxy

AudioFile tracktion::engine::RenderManager::Job::proxy

◆ progress

std::atomic<float> tracktion::engine::RenderManager::Job::progress { 0 }

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