TracktionEngine
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | List of all members
ARADocument Class Reference

#include <tracktion_ARAWrapperInterfaces.h>

Classes

struct  ScopedEdit
 
class  ScopedEditorView
 RAII registration of an editor view bound to this document - a clip player's instance or an additional binding like the plugin panel's browser instance - for selection fan-out (see ARAClipPlayer::setViewSelection). More...
 

Public Member Functions

 ARADocument (Edit &sourceEdit, ARAInstance *validPluginWrapper, const ARAPlugInExtensionInstance &, const ARADocumentControllerInstance &dc, ARADocumentControllerHostInstance *dchi, ArchivingState *archState)
 
 ~ARADocument ()
 
bool canEdit (bool dontCheckMusicalContext) const
 
void beginEditing (bool dontCheckMusicalContext)
 
void endEditing (bool dontCheckMusicalContext)
 
void flushStateToValueTree (juce::ValueTree &v)
 
void beginRestoringState (const juce::ValueTree &state)
 
void endRestoringState (juce::Array< PersistentIDMappingGroup > groups={})
 
juce::MemoryBlock storeObjectsForCopy (ARAAudioSourceRef source, ARAAudioModificationRef modification)
 Store a partial ARA archive containing just the given audio source and modification.
 
void restoreObjectsForPaste (const juce::MemoryBlock &data, const juce::String &archivedSourceID, const juce::String &currentSourceID, const juce::String &archivedModID, const juce::String &currentModID, const juce::String &documentArchiveID={})
 Restore a partial ARA archive, mapping archived persistent IDs to current ones.
 
void willCreatePlaybackRegionOnTrack (Track *track)
 
void willDestroyPlaybackRegionOnTrack (EditItemID trackID)
 
std::shared_ptr< AudioSourceWrapperacquireAudioSource (AudioClipBase &audioClip)
 
void releaseAudioSource (const juce::String &key)
 
void visitEditorViews (const std::function< void(const ARAPlugInExtensionInstance &, ExternalPlugin &)> &fn) const
 Calls the given function for every registered editor view.
 
void musicalContextContentChanged ()
 Notifies the plugin that the edit's tempo/key/chord content has changed so the musical context is re-read.
 

Public Attributes

Edit & edit
 
const ARADocumentControllerInterface * dci
 
ARADocumentControllerRef dcRef
 
std::unique_ptr< MusicalContextWrappermusicalContext
 
std::map< EditItemID, std::unique_ptr< RegionSequenceWrapper > > regionSequences
 
std::map< EditItemID, int > regionSequencePlaybackRegionCount
 
std::map< juce::String, std::shared_ptr< AudioSourceWrapper > > audioSources
 
std::map< juce::String, int > audioSourceRefCount
 
std::unique_ptr< juce::MemoryBlock > lastArchiveState
 
juce::String lastArchiveDocumentArchiveID
 

Constructor & Destructor Documentation

◆ ARADocument()

ARADocument::ARADocument ( Edit &  sourceEdit,
ARAInstance validPluginWrapper,
const ARAPlugInExtensionInstance &  ,
const ARADocumentControllerInstance &  dc,
ARADocumentControllerHostInstance *  dchi,
ArchivingState archState 
)

References CRASH_TRACER, and musicalContext.

◆ ~ARADocument()

ARADocument::~ARADocument ( )

Member Function Documentation

◆ canEdit()

bool ARADocument::canEdit ( bool  dontCheckMusicalContext) const

◆ beginEditing()

void ARADocument::beginEditing ( bool  dontCheckMusicalContext)

◆ endEditing()

void ARADocument::endEditing ( bool  dontCheckMusicalContext)

References canEdit(), dci, and dcRef.

Referenced by ARADocument::ScopedEdit::~ScopedEdit().

◆ flushStateToValueTree()

void ARADocument::flushStateToValueTree ( juce::ValueTree &  v)

References CRASH_TRACER, dci, and dcRef.

◆ beginRestoringState()

void ARADocument::beginRestoringState ( const juce::ValueTree &  state)
Note
Must not be editing or already restoring the document while restoring from a state.

References beginEditing(), CRASH_TRACER, lastArchiveDocumentArchiveID, and lastArchiveState.

◆ endRestoringState()

void ARADocument::endRestoringState ( juce::Array< PersistentIDMappingGroup groups = {})

◆ storeObjectsForCopy()

juce::MemoryBlock ARADocument::storeObjectsForCopy ( ARAAudioSourceRef  source,
ARAAudioModificationRef  modification 
)

Store a partial ARA archive containing just the given audio source and modification.

Used by clipboard copy to capture ARA plugin edits (e.g. Melodyne note corrections).

References CRASH_TRACER, dci, dcRef, and T_ARA_DBG.

◆ restoreObjectsForPaste()

void ARADocument::restoreObjectsForPaste ( const juce::MemoryBlock &  data,
const juce::String &  archivedSourceID,
const juce::String &  currentSourceID,
const juce::String &  archivedModID,
const juce::String &  currentModID,
const juce::String &  documentArchiveID = {} 
)

Restore a partial ARA archive, mapping archived persistent IDs to current ones.

Used by clipboard paste to restore ARA plugin edits into a newly pasted clip.

◆ willCreatePlaybackRegionOnTrack()

void ARADocument::willCreatePlaybackRegionOnTrack ( Track *  track)

◆ willDestroyPlaybackRegionOnTrack()

void ARADocument::willDestroyPlaybackRegionOnTrack ( EditItemID  trackID)

◆ acquireAudioSource()

std::shared_ptr< AudioSourceWrapper > ARADocument::acquireAudioSource ( AudioClipBase &  audioClip)

◆ releaseAudioSource()

void ARADocument::releaseAudioSource ( const juce::String &  key)

◆ visitEditorViews()

void ARADocument::visitEditorViews ( const std::function< void(const ARAPlugInExtensionInstance &, ExternalPlugin &)> &  fn) const

Calls the given function for every registered editor view.

◆ musicalContextContentChanged()

void ARADocument::musicalContextContentChanged ( )

Notifies the plugin that the edit's tempo/key/chord content has changed so the musical context is re-read.

Driven at document level (Edit::sendTempoOrPitchSequenceChangedUpdates → ARADocumentHolder) so it also works when no ARA clips exist to forward the change, e.g. a browser/panel-only instance (QA 16550).

References musicalContext.

Member Data Documentation

◆ edit

Edit& ARADocument::edit

◆ dci

const ARADocumentControllerInterface* ARADocument::dci

◆ dcRef

ARADocumentControllerRef ARADocument::dcRef

◆ musicalContext

std::unique_ptr<MusicalContextWrapper> ARADocument::musicalContext

◆ regionSequences

std::map<EditItemID, std::unique_ptr<RegionSequenceWrapper> > ARADocument::regionSequences

◆ regionSequencePlaybackRegionCount

std::map<EditItemID, int> ARADocument::regionSequencePlaybackRegionCount

◆ audioSources

std::map<juce::String, std::shared_ptr<AudioSourceWrapper> > ARADocument::audioSources

◆ audioSourceRefCount

std::map<juce::String, int> ARADocument::audioSourceRefCount

◆ lastArchiveState

std::unique_ptr<juce::MemoryBlock> ARADocument::lastArchiveState

Referenced by beginRestoringState(), and canEdit().

◆ lastArchiveDocumentArchiveID

juce::String ARADocument::lastArchiveDocumentArchiveID

Referenced by beginRestoringState().


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