TracktionEngine
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
tracktion::engine::RenderOptions Class Reference

Represents a set of user properties used to control a render operation, using a ValueTree to hold them so that they can be saved and reloaded. More...

Inherits juce::ValueTree::Listener.

Public Types

enum  TargetFileFormat {
  wav = 0 , aiff , flac , ogg ,
  mp3 , midi , numFormats
}
 
enum  AddRenderOptions {
  addTrack = 0 , replaceTrack = 1 , nextTrack = 2 , thisTrack = 3 ,
  replaceClips = 4 , none = 5
}
 Enum to set the options for renders. More...
 
enum class  RenderType {
  editClip = 0 , clip , track , midi ,
  allExport
}
 Enum to determine the type of UI this RenderOptions represents. More...
 

Public Member Functions

 RenderOptions (Engine &)
 
 RenderOptions (const RenderOptions &, juce::UndoManager *)
 
 RenderOptions (Engine &, const juce::ValueTree &, juce::UndoManager *)
 
 ~RenderOptions () override
 
 RenderOptions ()=delete
 
 RenderOptions (const RenderOptions &)=delete
 
 RenderOptions (RenderOptions &&)=delete
 
RenderOptions operator= (const RenderOptions &)=delete
 
RenderOptions operator= (RenderOptions &&)=delete
 
void loadFromUserSettings ()
 
void saveToUserSettings ()
 
void setToDefault ()
 
RenderManager::Job::Ptr performBackgroundRender (Edit &, SelectionManager *, TimeRange timeRangeToRender)
 Performs the render operation on a background thread. More...
 
HashCode getHash () const noexcept
 Returns a hash representing the current set of render options. More...
 
Renderer::Parameters getRenderParameters (Edit &, SelectionManager *, TimeRange markedRegion)
 Returns a set of renderer parameters which can be used to describe a render operation. More...
 
Renderer::Parameters getRenderParameters (Edit &)
 
Renderer::Parameters getRenderParameters (EditClip &)
 
Renderer::Parameters getRenderParameters (MidiClip &)
 
juce::AudioFormat * getAudioFormat ()
 Returns an AudioFormat to use for the current render properties. More...
 
Clip::Ptr applyRenderToEdit (Edit &, ProjectItem::Ptr, TimeRange time, SelectionManager *) const
 Adds the given ProjectItem to the Edit using the render properties for positioning info. More...
 
bool getUINeedsRefresh ()
 If you've chnaged a property that will cause the UI configuration to change this will return true which you should rebuild the property set from. More...
 
void setUINeedsRefresh ()
 
bool isEditClipRender () const
 
bool isClipRender () const
 
bool isTrackRender () const
 
bool isMidiRender () const
 
bool isExportAll () const
 
bool isRender () const
 
TargetFileFormat setFormat (TargetFileFormat)
 
void setFormatType (const juce::String &typeString)
 
juce::String getFormatTypeName (TargetFileFormat)
 
juce::Array< EditItemIDgetTrackIDs () const
 
void setTrackIDs (const juce::Array< EditItemID > &)
 
HashCode getTracksHash () const
 
void setSampleRate (int)
 
void setBitDepth (int depth)
 
juce::StringArray getQualitiesList () const
 
int getQualityIndex () const
 
void setQualityIndex (int q)
 
juce::File getDestFile () const noexcept
 
juce::String getFileExtension () const
 
TargetFileFormat getFormat () const noexcept
 
int getBitDepth () const
 
bool getStereo () const
 
double getSampleRate () const
 
bool shouldAddMetadata () const
 
juce::BigInteger getTrackIndexes (const Edit &) const
 
bool getRemoveSilence () const noexcept
 
bool getMarkedRegion () const noexcept
 
int getNumTracks () const noexcept
 
void setSelected (bool onlySelectedTrackAndClips)
 
void setMarkedRegion (bool onlyMarked)
 
void setIncludePlugins (bool includePlugins)
 
void setAddRenderOption (AddRenderOptions options)
 
void setEndAllowance (TimeDuration time)
 
void setFilename (juce::String, bool canPromptToOverwriteExisting)
 
void updateHash ()
 
juce::StringArray getFormatTypes ()
 
juce::StringArray getAddRenderOptionText ()
 

Static Public Member Functions

static std::unique_ptr< RenderOptionsforGeneralExporter (Edit &)
 Creates a default RenderOptions object for a general purpose exporter. More...
 
static std::unique_ptr< RenderOptionsforTrackRender (juce::Array< Track * > tracks, AddRenderOptions addOption)
 
static std::unique_ptr< RenderOptionsforClipRender (juce::Array< Clip * > clips, bool midiNotes)
 
static std::unique_ptr< RenderOptionsforEditClip (Clip &editClip)
 
static TimeDuration findEndAllowance (Edit &, juce::Array< EditItemID > *tracks, juce::Array< Clip * > *)
 
static bool isMarkedRegionBigEnough (TimeRange)
 

Public Attributes

Engineengine
 
juce::CachedValue< RenderTypetype
 
juce::CachedValue< juce::String > tracksProperty
 
juce::CachedValue< bool > createMidiFile
 
juce::CachedValue< TargetFileFormatformat
 
juce::CachedValue< bool > stereo
 
juce::CachedValue< double > sampleRate
 
juce::CachedValue< int > bitDepth
 
juce::CachedValue< int > qualityIndex
 
juce::CachedValue< double > rmsLevelDb
 
juce::CachedValue< double > peakLevelDb
 
juce::CachedValue< bool > removeSilence
 
juce::CachedValue< bool > normalise
 
juce::CachedValue< bool > dither
 
juce::CachedValue< bool > adjustBasedOnRMS
 
juce::CachedValue< bool > markedRegion
 
juce::CachedValue< bool > selectedTracks
 
juce::CachedValue< bool > selectedClips
 
juce::CachedValue< bool > tracksToSeparateFiles
 
juce::CachedValue< bool > realTime
 
juce::CachedValue< bool > usePlugins
 
juce::CachedValue< AddRenderOptionsaddRenderOptions
 
juce::CachedValue< bool > addRenderToLibrary
 
juce::CachedValue< bool > reverseRender
 
juce::CachedValue< bool > addMetadata
 
std::function< void(AudioClipBase &)> offerToAddClipToLibrary
 
std::function< void(const juce::File &)> offerToAddFileToLibrary
 

Detailed Description

Represents a set of user properties used to control a render operation, using a ValueTree to hold them so that they can be saved and reloaded.

They can also be converted into a set of Renderer::Properties.

Member Enumeration Documentation

◆ TargetFileFormat

Enumerator
wav 
aiff 
flac 
ogg 
mp3 
midi 
numFormats 

◆ AddRenderOptions

Enum to set the options for renders.

Enumerator
addTrack 
replaceTrack 
nextTrack 
thisTrack 
replaceClips 
none 

◆ RenderType

Enum to determine the type of UI this RenderOptions represents.

Enumerator
editClip 
clip 
track 
midi 
allExport 

Constructor & Destructor Documentation

◆ RenderOptions() [1/6]

tracktion::engine::RenderOptions::RenderOptions ( Engine )

◆ RenderOptions() [2/6]

tracktion::engine::RenderOptions::RenderOptions ( const RenderOptions ,
juce::UndoManager *   
)

◆ RenderOptions() [3/6]

tracktion::engine::RenderOptions::RenderOptions ( Engine ,
const juce::ValueTree &  ,
juce::UndoManager *   
)

◆ ~RenderOptions()

tracktion::engine::RenderOptions::~RenderOptions ( )
override

◆ RenderOptions() [4/6]

tracktion::engine::RenderOptions::RenderOptions ( )
delete

◆ RenderOptions() [5/6]

tracktion::engine::RenderOptions::RenderOptions ( const RenderOptions )
delete

◆ RenderOptions() [6/6]

tracktion::engine::RenderOptions::RenderOptions ( RenderOptions &&  )
delete

Member Function Documentation

◆ operator=() [1/2]

RenderOptions tracktion::engine::RenderOptions::operator= ( const RenderOptions )
delete

◆ operator=() [2/2]

RenderOptions tracktion::engine::RenderOptions::operator= ( RenderOptions &&  )
delete

◆ loadFromUserSettings()

void tracktion::engine::RenderOptions::loadFromUserSettings ( )

◆ saveToUserSettings()

void tracktion::engine::RenderOptions::saveToUserSettings ( )

◆ setToDefault()

void tracktion::engine::RenderOptions::setToDefault ( )

◆ performBackgroundRender()

RenderManager::Job::Ptr tracktion::engine::RenderOptions::performBackgroundRender ( Edit ,
SelectionManager ,
TimeRange  timeRangeToRender 
)

Performs the render operation on a background thread.

◆ getHash()

HashCode tracktion::engine::RenderOptions::getHash ( ) const
noexcept

Returns a hash representing the current set of render options.

◆ getRenderParameters() [1/4]

Renderer::Parameters tracktion::engine::RenderOptions::getRenderParameters ( Edit ,
SelectionManager ,
TimeRange  markedRegion 
)

Returns a set of renderer parameters which can be used to describe a render operation.

◆ getRenderParameters() [2/4]

Renderer::Parameters tracktion::engine::RenderOptions::getRenderParameters ( Edit )

◆ getRenderParameters() [3/4]

Renderer::Parameters tracktion::engine::RenderOptions::getRenderParameters ( EditClip )

◆ getRenderParameters() [4/4]

Renderer::Parameters tracktion::engine::RenderOptions::getRenderParameters ( MidiClip )

◆ getAudioFormat()

juce::AudioFormat* tracktion::engine::RenderOptions::getAudioFormat ( )

Returns an AudioFormat to use for the current render properties.

◆ applyRenderToEdit()

Clip::Ptr tracktion::engine::RenderOptions::applyRenderToEdit ( Edit ,
ProjectItem::Ptr  ,
TimeRange  time,
SelectionManager  
) const

Adds the given ProjectItem to the Edit using the render properties for positioning info.

◆ forGeneralExporter()

static std::unique_ptr<RenderOptions> tracktion::engine::RenderOptions::forGeneralExporter ( Edit )
static

Creates a default RenderOptions object for a general purpose exporter.

◆ forTrackRender()

static std::unique_ptr<RenderOptions> tracktion::engine::RenderOptions::forTrackRender ( juce::Array< Track * >  tracks,
AddRenderOptions  addOption 
)
static

◆ forClipRender()

static std::unique_ptr<RenderOptions> tracktion::engine::RenderOptions::forClipRender ( juce::Array< Clip * >  clips,
bool  midiNotes 
)
static

◆ forEditClip()

static std::unique_ptr<RenderOptions> tracktion::engine::RenderOptions::forEditClip ( Clip editClip)
static

◆ getUINeedsRefresh()

bool tracktion::engine::RenderOptions::getUINeedsRefresh ( )

If you've chnaged a property that will cause the UI configuration to change this will return true which you should rebuild the property set from.

◆ setUINeedsRefresh()

void tracktion::engine::RenderOptions::setUINeedsRefresh ( )

◆ isEditClipRender()

bool tracktion::engine::RenderOptions::isEditClipRender ( ) const

References editClip, and type.

◆ isClipRender()

bool tracktion::engine::RenderOptions::isClipRender ( ) const

References clip, and type.

Referenced by isRender().

◆ isTrackRender()

bool tracktion::engine::RenderOptions::isTrackRender ( ) const

References track, and type.

Referenced by isRender().

◆ isMidiRender()

bool tracktion::engine::RenderOptions::isMidiRender ( ) const

References midi, and type.

Referenced by isRender().

◆ isExportAll()

bool tracktion::engine::RenderOptions::isExportAll ( ) const

References allExport, and type.

◆ isRender()

bool tracktion::engine::RenderOptions::isRender ( ) const

◆ setFormat()

TargetFileFormat tracktion::engine::RenderOptions::setFormat ( TargetFileFormat  )

◆ setFormatType()

void tracktion::engine::RenderOptions::setFormatType ( const juce::String &  typeString)

◆ getFormatTypeName()

juce::String tracktion::engine::RenderOptions::getFormatTypeName ( TargetFileFormat  )

◆ getTrackIDs()

juce::Array<EditItemID> tracktion::engine::RenderOptions::getTrackIDs ( ) const

◆ setTrackIDs()

void tracktion::engine::RenderOptions::setTrackIDs ( const juce::Array< EditItemID > &  )

◆ getTracksHash()

HashCode tracktion::engine::RenderOptions::getTracksHash ( ) const

◆ setSampleRate()

void tracktion::engine::RenderOptions::setSampleRate ( int  )

◆ setBitDepth()

void tracktion::engine::RenderOptions::setBitDepth ( int  depth)

References bitDepth.

◆ getQualitiesList()

juce::StringArray tracktion::engine::RenderOptions::getQualitiesList ( ) const

◆ getQualityIndex()

int tracktion::engine::RenderOptions::getQualityIndex ( ) const

References qualityIndex.

◆ setQualityIndex()

void tracktion::engine::RenderOptions::setQualityIndex ( int  q)

References qualityIndex.

◆ getDestFile()

juce::File tracktion::engine::RenderOptions::getDestFile ( ) const
noexcept

◆ getFileExtension()

juce::String tracktion::engine::RenderOptions::getFileExtension ( ) const

◆ getFormat()

TargetFileFormat tracktion::engine::RenderOptions::getFormat ( ) const
noexcept

References format.

◆ getBitDepth()

int tracktion::engine::RenderOptions::getBitDepth ( ) const

References bitDepth.

◆ getStereo()

bool tracktion::engine::RenderOptions::getStereo ( ) const

References stereo.

◆ getSampleRate()

double tracktion::engine::RenderOptions::getSampleRate ( ) const

References sampleRate.

◆ shouldAddMetadata()

bool tracktion::engine::RenderOptions::shouldAddMetadata ( ) const

References addMetadata.

◆ getTrackIndexes()

juce::BigInteger tracktion::engine::RenderOptions::getTrackIndexes ( const Edit ) const

◆ getRemoveSilence()

bool tracktion::engine::RenderOptions::getRemoveSilence ( ) const
noexcept

References removeSilence.

◆ getMarkedRegion()

bool tracktion::engine::RenderOptions::getMarkedRegion ( ) const
noexcept

References markedRegion.

◆ getNumTracks()

int tracktion::engine::RenderOptions::getNumTracks ( ) const
noexcept

◆ setSelected()

void tracktion::engine::RenderOptions::setSelected ( bool  onlySelectedTrackAndClips)

◆ setMarkedRegion()

void tracktion::engine::RenderOptions::setMarkedRegion ( bool  onlyMarked)

References markedRegion.

◆ setIncludePlugins()

void tracktion::engine::RenderOptions::setIncludePlugins ( bool  includePlugins)

References usePlugins.

◆ setAddRenderOption()

void tracktion::engine::RenderOptions::setAddRenderOption ( AddRenderOptions  options)

References addRenderOptions.

◆ setEndAllowance()

void tracktion::engine::RenderOptions::setEndAllowance ( TimeDuration  time)

◆ setFilename()

void tracktion::engine::RenderOptions::setFilename ( juce::String  ,
bool  canPromptToOverwriteExisting 
)

◆ updateHash()

void tracktion::engine::RenderOptions::updateHash ( )

◆ getFormatTypes()

juce::StringArray tracktion::engine::RenderOptions::getFormatTypes ( )

◆ getAddRenderOptionText()

juce::StringArray tracktion::engine::RenderOptions::getAddRenderOptionText ( )

◆ findEndAllowance()

static TimeDuration tracktion::engine::RenderOptions::findEndAllowance ( Edit ,
juce::Array< EditItemID > *  tracks,
juce::Array< Clip * > *   
)
static

◆ isMarkedRegionBigEnough()

static bool tracktion::engine::RenderOptions::isMarkedRegionBigEnough ( TimeRange  )
static

Member Data Documentation

◆ engine

Engine& tracktion::engine::RenderOptions::engine

◆ type

juce::CachedValue<RenderType> tracktion::engine::RenderOptions::type

◆ tracksProperty

juce::CachedValue<juce::String> tracktion::engine::RenderOptions::tracksProperty

◆ createMidiFile

juce::CachedValue<bool> tracktion::engine::RenderOptions::createMidiFile

◆ format

juce::CachedValue<TargetFileFormat> tracktion::engine::RenderOptions::format

Referenced by getFormat().

◆ stereo

juce::CachedValue<bool> tracktion::engine::RenderOptions::stereo

Referenced by getStereo().

◆ sampleRate

juce::CachedValue<double> tracktion::engine::RenderOptions::sampleRate

Referenced by getSampleRate().

◆ bitDepth

juce::CachedValue<int> tracktion::engine::RenderOptions::bitDepth

Referenced by getBitDepth(), and setBitDepth().

◆ qualityIndex

juce::CachedValue<int> tracktion::engine::RenderOptions::qualityIndex

Referenced by getQualityIndex(), and setQualityIndex().

◆ rmsLevelDb

juce::CachedValue<double> tracktion::engine::RenderOptions::rmsLevelDb

◆ peakLevelDb

juce::CachedValue<double> tracktion::engine::RenderOptions::peakLevelDb

◆ removeSilence

juce::CachedValue<bool> tracktion::engine::RenderOptions::removeSilence

Referenced by getRemoveSilence().

◆ normalise

juce::CachedValue<bool> tracktion::engine::RenderOptions::normalise

◆ dither

juce::CachedValue<bool> tracktion::engine::RenderOptions::dither

◆ adjustBasedOnRMS

juce::CachedValue<bool> tracktion::engine::RenderOptions::adjustBasedOnRMS

◆ markedRegion

juce::CachedValue<bool> tracktion::engine::RenderOptions::markedRegion

Referenced by getMarkedRegion(), and setMarkedRegion().

◆ selectedTracks

juce::CachedValue<bool> tracktion::engine::RenderOptions::selectedTracks

◆ selectedClips

juce::CachedValue<bool> tracktion::engine::RenderOptions::selectedClips

◆ tracksToSeparateFiles

juce::CachedValue<bool> tracktion::engine::RenderOptions::tracksToSeparateFiles

◆ realTime

juce::CachedValue<bool> tracktion::engine::RenderOptions::realTime

◆ usePlugins

juce::CachedValue<bool> tracktion::engine::RenderOptions::usePlugins

Referenced by setIncludePlugins().

◆ addRenderOptions

juce::CachedValue<AddRenderOptions> tracktion::engine::RenderOptions::addRenderOptions

Referenced by setAddRenderOption().

◆ addRenderToLibrary

juce::CachedValue<bool> tracktion::engine::RenderOptions::addRenderToLibrary

◆ reverseRender

juce::CachedValue<bool> tracktion::engine::RenderOptions::reverseRender

◆ addMetadata

juce::CachedValue<bool> tracktion::engine::RenderOptions::addMetadata

Referenced by shouldAddMetadata().

◆ offerToAddClipToLibrary

std::function<void(AudioClipBase&)> tracktion::engine::RenderOptions::offerToAddClipToLibrary

◆ offerToAddFileToLibrary

std::function<void(const juce::File&)> tracktion::engine::RenderOptions::offerToAddFileToLibrary

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