TracktionEngine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
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...

#include <tracktion_RenderOptions.h>

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.
 
HashCode getHash () const noexcept
 Returns a hash representing the current set of render options.
 
Renderer::Parameters getRenderParameters (Edit &, SelectionManager *, TimeRange markedRegion)
 Returns a set of renderer parameters which can be used to describe a render operation.
 
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.
 
Clip::Ptr applyRenderToEdit (Edit &, ProjectItem::Ptr, TimeRange time, SelectionManager *) const
 Adds the given ProjectItem to the Edit using the render properties for positioning info.
 
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.
 
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
 
juce::String getCurrentFileExtension ()
 
TargetFileFormat getFormat () const noexcept
 
int getBitDepth () const
 
ChannelConfiguration getChannelConfiguration () const
 
void setChannelConfiguration (const ChannelConfiguration &)
 
double getSampleRate () const
 
bool shouldAddMetadata () const
 
bool shouldAddAcidMetadata () 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, std::function< void()> onComplete=nullptr)
 Sets the destination file.
 
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.
 
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< juce::String > channelConfigStr
 
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
 
juce::CachedValue< bool > addAcidMetadata
 
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]

engine::RenderOptions::RenderOptions ( Engine )

◆ RenderOptions() [2/6]

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

◆ RenderOptions() [3/6]

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

◆ ~RenderOptions()

engine::RenderOptions::~RenderOptions ( )
override

◆ RenderOptions() [4/6]

engine::RenderOptions::RenderOptions ( )
delete

◆ RenderOptions() [5/6]

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

◆ RenderOptions() [6/6]

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

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ loadFromUserSettings()

void engine::RenderOptions::loadFromUserSettings ( )

◆ saveToUserSettings()

void engine::RenderOptions::saveToUserSettings ( )

◆ setToDefault()

void engine::RenderOptions::setToDefault ( )

◆ performBackgroundRender()

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

Performs the render operation on a background thread.

◆ getHash()

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

Returns a hash representing the current set of render options.

◆ getRenderParameters() [1/4]

Renderer::Parameters 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 engine::RenderOptions::getRenderParameters ( Edit )

◆ getRenderParameters() [3/4]

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

◆ getRenderParameters() [4/4]

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

◆ getAudioFormat()

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

Returns an AudioFormat to use for the current render properties.

◆ applyRenderToEdit()

Clip::Ptr 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 > engine::RenderOptions::forGeneralExporter ( Edit )
static

Creates a default RenderOptions object for a general purpose exporter.

◆ forTrackRender()

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

◆ forClipRender()

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

◆ forEditClip()

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

◆ getUINeedsRefresh()

bool 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 engine::RenderOptions::setUINeedsRefresh ( )

◆ isEditClipRender()

bool engine::RenderOptions::isEditClipRender ( ) const

◆ isClipRender()

bool engine::RenderOptions::isClipRender ( ) const

◆ isTrackRender()

bool engine::RenderOptions::isTrackRender ( ) const

◆ isMidiRender()

bool engine::RenderOptions::isMidiRender ( ) const

◆ isExportAll()

bool engine::RenderOptions::isExportAll ( ) const

◆ isRender()

bool engine::RenderOptions::isRender ( ) const

◆ setFormat()

TargetFileFormat engine::RenderOptions::setFormat ( TargetFileFormat  )

◆ setFormatType()

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

◆ getFormatTypeName()

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

◆ getTrackIDs()

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

◆ setTrackIDs()

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

◆ getTracksHash()

HashCode engine::RenderOptions::getTracksHash ( ) const

◆ setSampleRate()

void engine::RenderOptions::setSampleRate ( int  )

◆ setBitDepth()

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

◆ getQualitiesList()

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

◆ getQualityIndex()

int engine::RenderOptions::getQualityIndex ( ) const

◆ setQualityIndex()

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

◆ getDestFile()

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

◆ getFileExtension()

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

◆ getCurrentFileExtension()

juce::String engine::RenderOptions::getCurrentFileExtension ( )

◆ getFormat()

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

◆ getBitDepth()

int engine::RenderOptions::getBitDepth ( ) const

◆ getChannelConfiguration()

ChannelConfiguration engine::RenderOptions::getChannelConfiguration ( ) const

◆ setChannelConfiguration()

void engine::RenderOptions::setChannelConfiguration ( const ChannelConfiguration &  )

◆ getSampleRate()

double engine::RenderOptions::getSampleRate ( ) const

◆ shouldAddMetadata()

bool engine::RenderOptions::shouldAddMetadata ( ) const

◆ shouldAddAcidMetadata()

bool engine::RenderOptions::shouldAddAcidMetadata ( ) const

◆ getTrackIndexes()

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

◆ getRemoveSilence()

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

◆ getMarkedRegion()

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

References engine::markedRegion.

◆ getNumTracks()

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

◆ setSelected()

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

◆ setMarkedRegion()

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

References engine::markedRegion.

◆ setIncludePlugins()

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

◆ setAddRenderOption()

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

◆ setEndAllowance()

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

◆ setFilename()

void engine::RenderOptions::setFilename ( juce::String  ,
bool  canPromptToOverwriteExisting,
std::function< void()>  onComplete = nullptr 
)

Sets the destination file.

As this may need to asynchronously prompt to overwrite an existing file, the optional callback is invoked once the filename has actually been updated.

◆ updateHash()

void engine::RenderOptions::updateHash ( )

◆ getFormatTypes()

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

◆ getAddRenderOptionText()

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

◆ findEndAllowance()

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

◆ isMarkedRegionBigEnough()

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

Member Data Documentation

◆ engine

Engine& engine::RenderOptions::engine

◆ type

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

◆ tracksProperty

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

◆ createMidiFile

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

◆ format

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

◆ channelConfigStr

juce::CachedValue<juce::String> engine::RenderOptions::channelConfigStr

◆ sampleRate

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

◆ bitDepth

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

◆ qualityIndex

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

◆ rmsLevelDb

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

◆ peakLevelDb

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

◆ removeSilence

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

◆ normalise

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

◆ dither

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

◆ adjustBasedOnRMS

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

◆ markedRegion

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

◆ selectedTracks

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

◆ selectedClips

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

◆ tracksToSeparateFiles

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

◆ realTime

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

◆ usePlugins

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

◆ addRenderOptions

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

◆ addRenderToLibrary

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

◆ reverseRender

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

◆ addMetadata

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

◆ addAcidMetadata

juce::CachedValue<bool> engine::RenderOptions::addAcidMetadata

◆ offerToAddClipToLibrary

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

◆ offerToAddFileToLibrary

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

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