|
| | ARADocumentControllerSpecialisation (const ARA::PlugIn::PlugInEntry *entry, const ARA::ARADocumentControllerHostInstance *instance) |
| virtual | ~ARADocumentControllerSpecialisation () |
| ARA::PlugIn::DocumentController * | getDocumentController () noexcept |
| template<typename DocumentType = ARADocument> |
| DocumentType * | getDocument () |
| virtual | ~ARADocumentListener ()=default |
| virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void | willBeginEditing (ARADocument *document) |
| virtual void | didEndEditing (ARADocument *document) |
| virtual void | willNotifyModelUpdates (ARADocument *document) |
| virtual void | didNotifyModelUpdates (ARADocument *document) |
| virtual void | willUpdateDocumentProperties (ARADocument *document, ARA::PlugIn::PropertiesPtr< ARA::ARADocumentProperties > newProperties) |
| virtual void | didUpdateDocumentProperties (ARADocument *document) |
| virtual void | didAddMusicalContextToDocument (ARADocument *document, ARAMusicalContext *musicalContext) |
| virtual void | willRemoveMusicalContextFromDocument (ARADocument *document, ARAMusicalContext *musicalContext) |
| virtual void | didReorderMusicalContextsInDocument (ARADocument *document) |
| virtual void | didAddRegionSequenceToDocument (ARADocument *document, ARARegionSequence *regionSequence) |
| virtual void | willRemoveRegionSequenceFromDocument (ARADocument *document, ARARegionSequence *regionSequence) |
| virtual void | didReorderRegionSequencesInDocument (ARADocument *document) |
| virtual void | didAddAudioSourceToDocument (ARADocument *document, ARAAudioSource *audioSource) |
| virtual void | willRemoveAudioSourceFromDocument (ARADocument *document, ARAAudioSource *audioSource) |
| virtual void | willDestroyDocument (ARADocument *document) |
| virtual | ~ARAMusicalContextListener ()=default |
| virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void | willUpdateMusicalContextProperties (ARAMusicalContext *musicalContext, ARA::PlugIn::PropertiesPtr< ARA::ARAMusicalContextProperties > newProperties) |
| virtual void | didUpdateMusicalContextProperties (ARAMusicalContext *musicalContext) |
| virtual void | doUpdateMusicalContextContent (ARAMusicalContext *musicalContext, ARAContentUpdateScopes scopeFlags) |
| virtual void | didAddRegionSequenceToMusicalContext (ARAMusicalContext *musicalContext, ARARegionSequence *regionSequence) |
| virtual void | willRemoveRegionSequenceFromMusicalContext (ARAMusicalContext *musicalContext, ARARegionSequence *regionSequence) |
| virtual void | didReorderRegionSequencesInMusicalContext (ARAMusicalContext *musicalContext) |
| virtual void | willDestroyMusicalContext (ARAMusicalContext *musicalContext) |
| virtual | ~ARARegionSequenceListener ()=default |
| virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void | willUpdateRegionSequenceProperties (ARARegionSequence *regionSequence, ARA::PlugIn::PropertiesPtr< ARA::ARARegionSequenceProperties > newProperties) |
| virtual void | didUpdateRegionSequenceProperties (ARARegionSequence *regionSequence) |
| virtual void | willRemovePlaybackRegionFromRegionSequence (ARARegionSequence *regionSequence, ARAPlaybackRegion *playbackRegion) |
| virtual void | didAddPlaybackRegionToRegionSequence (ARARegionSequence *regionSequence, ARAPlaybackRegion *playbackRegion) |
| virtual void | willDestroyRegionSequence (ARARegionSequence *regionSequence) |
| virtual | ~ARAAudioSourceListener ()=default |
| virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void | willUpdateAudioSourceProperties (ARAAudioSource *audioSource, ARA::PlugIn::PropertiesPtr< ARA::ARAAudioSourceProperties > newProperties) |
| virtual void | didUpdateAudioSourceProperties (ARAAudioSource *audioSource) |
| virtual void | doUpdateAudioSourceContent (ARAAudioSource *audioSource, ARAContentUpdateScopes scopeFlags) |
| virtual void | didUpdateAudioSourceAnalysisProgress (ARAAudioSource *audioSource, ARA::ARAAnalysisProgressState state, float progress) |
| virtual void | willEnableAudioSourceSamplesAccess (ARAAudioSource *audioSource, bool enable) |
| virtual void | didEnableAudioSourceSamplesAccess (ARAAudioSource *audioSource, bool enable) |
| virtual void | willDeactivateAudioSourceForUndoHistory (ARAAudioSource *audioSource, bool deactivate) |
| virtual void | didDeactivateAudioSourceForUndoHistory (ARAAudioSource *audioSource, bool deactivate) |
| virtual void | didAddAudioModificationToAudioSource (ARAAudioSource *audioSource, ARAAudioModification *audioModification) |
| virtual void | willRemoveAudioModificationFromAudioSource (ARAAudioSource *audioSource, ARAAudioModification *audioModification) |
| virtual void | willDestroyAudioSource (ARAAudioSource *audioSource) |
| virtual | ~ARAAudioModificationListener ()=default |
| virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void | willUpdateAudioModificationProperties (ARAAudioModification *audioModification, ARA::PlugIn::PropertiesPtr< ARA::ARAAudioModificationProperties > newProperties) |
| virtual void | didUpdateAudioModificationProperties (ARAAudioModification *audioModification) |
| virtual void | didUpdateAudioModificationContent (ARAAudioModification *audioModification, ARAContentUpdateScopes scopeFlags) |
| virtual void | willDeactivateAudioModificationForUndoHistory (ARAAudioModification *audioModification, bool deactivate) |
| virtual void | didDeactivateAudioModificationForUndoHistory (ARAAudioModification *audioModification, bool deactivate) |
| virtual void | didAddPlaybackRegionToAudioModification (ARAAudioModification *audioModification, ARAPlaybackRegion *playbackRegion) |
| virtual void | willRemovePlaybackRegionFromAudioModification (ARAAudioModification *audioModification, ARAPlaybackRegion *playbackRegion) |
| virtual void | willDestroyAudioModification (ARAAudioModification *audioModification) |
| virtual | ~ARAPlaybackRegionListener ()=default |
| virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void | willUpdatePlaybackRegionProperties (ARAPlaybackRegion *playbackRegion, ARA::PlugIn::PropertiesPtr< ARA::ARAPlaybackRegionProperties > newProperties) |
| virtual void | didUpdatePlaybackRegionProperties (ARAPlaybackRegion *playbackRegion) |
| virtual void | didUpdatePlaybackRegionContent (ARAPlaybackRegion *playbackRegion, ARAContentUpdateScopes scopeFlags) |
| virtual void | willDestroyPlaybackRegion (ARAPlaybackRegion *playbackRegion) |
|
| virtual bool | doRestoreObjectsFromStream (ARAInputStream &input, const ARARestoreObjectsFilter *filter)=0 |
| virtual bool | doStoreObjectsToStream (ARAOutputStream &output, const ARAStoreObjectsFilter *filter)=0 |
| virtual ARAPlaybackRenderer * | doCreatePlaybackRenderer () |
| virtual ARAEditorRenderer * | doCreateEditorRenderer () |
| virtual ARAEditorView * | doCreateEditorView () |
| virtual bool | doIsAudioSourceContentAvailable (const ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type) |
| virtual ARA::ARAContentGrade | doGetAudioSourceContentGrade (const ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type) |
| virtual ARA::PlugIn::ContentReader * | doCreateAudioSourceContentReader (ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type, const ARA::ARAContentTimeRange *range) |
| virtual bool | doIsAudioModificationContentAvailable (const ARA::PlugIn::AudioModification *audioModification, ARA::ARAContentType type) |
| virtual ARA::ARAContentGrade | doGetAudioModificationContentGrade (const ARA::PlugIn::AudioModification *audioModification, ARA::ARAContentType type) |
| virtual ARA::PlugIn::ContentReader * | doCreateAudioModificationContentReader (ARA::PlugIn::AudioModification *audioModification, ARA::ARAContentType type, const ARA::ARAContentTimeRange *range) |
| virtual bool | doIsPlaybackRegionContentAvailable (const ARA::PlugIn::PlaybackRegion *playbackRegion, ARA::ARAContentType type) |
| virtual ARA::ARAContentGrade | doGetPlaybackRegionContentGrade (const ARA::PlugIn::PlaybackRegion *playbackRegion, ARA::ARAContentType type) |
| virtual ARA::PlugIn::ContentReader * | doCreatePlaybackRegionContentReader (ARA::PlugIn::PlaybackRegion *playbackRegion, ARA::ARAContentType type, const ARA::ARAContentTimeRange *range) |
| virtual bool | doIsAudioSourceContentAnalysisIncomplete (const ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type) |
| virtual void | doRequestAudioSourceContentAnalysis (ARA::PlugIn::AudioSource *audioSource, std::vector< ARA::ARAContentType > const &contentTypes) |
| virtual ARA::ARAInt32 | doGetProcessingAlgorithmsCount () |
| virtual const ARA::ARAProcessingAlgorithmProperties * | doGetProcessingAlgorithmProperties (ARA::ARAInt32 algorithmIndex) |
| virtual ARA::ARAInt32 | doGetProcessingAlgorithmForAudioSource (const ARA::PlugIn::AudioSource *audioSource) |
| virtual void | doRequestProcessingAlgorithmForAudioSource (ARA::PlugIn::AudioSource *audioSource, ARA::ARAInt32 algorithmIndex) |
| virtual ARADocument * | doCreateDocument () |
| virtual ARAMusicalContext * | doCreateMusicalContext (ARADocument *document, ARA::ARAMusicalContextHostRef hostRef) |
| virtual ARARegionSequence * | doCreateRegionSequence (ARADocument *document, ARA::ARARegionSequenceHostRef hostRef) |
| virtual ARAAudioSource * | doCreateAudioSource (ARADocument *document, ARA::ARAAudioSourceHostRef hostRef) |
| virtual ARAAudioModification * | doCreateAudioModification (ARAAudioSource *audioSource, ARA::ARAAudioModificationHostRef hostRef, const ARAAudioModification *optionalModificationToClone) |
| virtual ARAPlaybackRegion * | doCreatePlaybackRegion (ARAAudioModification *modification, ARA::ARAPlaybackRegionHostRef hostRef) |
This class contains the customisation points for the JUCE provided ARA document controller implementation.
Every ARA enabled plugin must provide its own document controller implementation. To do this, inherit from this class, and override its protected methods as needed. Then you need to implement a global function somewhere in your module called createARAFactory(). This function must return an ARAFactory* that will instantiate document controller objects using your specialisation. There are helper functions inside ARADocumentControllerSpecialisation, so the implementation of createARAFactory() can always be a simple one-liner. For example
{
};
{
return juce::ARADocumentControllerSpecialisation::createARAFactory<MyDocumentController>();
}
ARADocumentControllerSpecialisation(const ARA::PlugIn::PlugInEntry *entry, const ARA::ARADocumentControllerHostInstance *instance)
Definition juce_ARADocumentController.cpp:813
Most member functions have a default implementation so you can build up your required feature set gradually. The protected functions of this class fall in three distinct groups:
- interactive editing and playback,
- analysis features provided by the plugin and utilised by the host, and
- maintaining the ARA model graph.
On top of the pure virtual functions, you will probably want to override doCreatePlaybackRenderer() at the very least if you want your plugin to play any sound. This function belongs to the first group.
If your plugin has analysis capabilities and wants to allow the host to access these, functions in the second group should be overridden.
The default implementation of the ARA model object classes - i.e. ARADocument, ARAMusicalContext, ARARegionSequence, ARAAudioSource, ARAAudioModification, ARAPlaybackRegion - should be sufficient for maintaining a representation of the ARA model graph, hence overriding the model object creation functions e.g. doCreateMusicalContext() is considered an advanced use case. Hence you should be able to get a lot done without overriding functions in the third group.
In order to react to the various ARA state changes you can override any of the ARA model object Listener functions that ARADocumentControllerSpecialisation inherits from. Such listener functions can be attached to one particular model objects instance, but the listener functions inside ARADocumentControllerSpecialisation will respond to the events of all instances of the model objects.
@tags{ARA}