31class ARAPlaybackRenderer;
32class ARAEditorRenderer;
98 const ARA::ARADocumentControllerHostInstance* instance);
123 template <typename SpecialisationType>
126 static_assert (std::is_base_of<ARADocumentControllerSpecialisation, SpecialisationType>::value,
127 "DocumentController specialization types must inherit from ARADocumentControllerSpecialisation");
128 return ARA::PlugIn::PlugInEntry::getPlugInEntry<FactoryConfig<SpecialisationType>>()->getFactory();
135 template <
typename Specialisation = ARADocumentControllerSpecialisation>
142 template <
typename DocumentType = ARADocument>
193 ARA::ARAContentType
type);
201 ARA::ARAContentType
type);
210 ARA::ARAContentType
type,
211 const ARA::ARAContentTimeRange* range);
225 ARA::ARAContentType
type);
235 ARA::ARAContentType
type);
246 ARA::ARAContentType
type,
247 const ARA::ARAContentTimeRange* range);
262 ARA::ARAContentType
type);
273 ARA::ARAContentType
type);
282 ARA::ARAContentType
type,
283 const ARA::ARAContentTimeRange* range);
294 ARA::ARAContentType
type);
302 std::vector<ARA::ARAContentType>
const& contentTypes);
319 virtual const ARA::ARAProcessingAlgorithmProperties*
342 ARA::ARAMusicalContextHostRef hostRef);
346 ARA::ARARegionSequenceHostRef hostRef);
350 ARA::ARAAudioSourceHostRef hostRef);
354 ARA::ARAAudioModificationHostRef hostRef,
359 ARA::ARAPlaybackRegionHostRef hostRef);
363 template <
typename SpecialisationType>
369 const juce::String compatibleDocumentArchiveIDString = JucePlugin_ARACompatibleArchiveIDs;
371 if (compatibleDocumentArchiveIDString.
isNotEmpty())
379 static constexpr std::array<ARA::ARAContentType, 6> contentTypes {
380 ARA::kARAContentTypeNotes,
381 ARA::kARAContentTypeTempoEntries,
382 ARA::kARAContentTypeBarSignatures,
383 ARA::kARAContentTypeStaticTuning,
384 ARA::kARAContentTypeKeySignatures,
385 ARA::kARAContentTypeSheetChords
390 for (
size_t i = 0;
i < contentTypes.size(); ++
i)
391 if (JucePlugin_ARAContentTypes & (1 <<
i))
397 static constexpr std::array<ARA::ARAPlaybackTransformationFlags, 4> playbackTransformationFlags {
398 ARA::kARAPlaybackTransformationTimestretch,
399 ARA::kARAPlaybackTransformationTimestretchReflectingTempo,
400 ARA::kARAPlaybackTransformationContentBasedFadeAtTail,
401 ARA::kARAPlaybackTransformationContentBasedFadeAtHead
408 for (
size_t i = 0;
i < playbackTransformationFlags.size(); ++
i)
409 if (JucePlugin_ARATransformationFlags & (1 <<
i))
448 const ARA::ARADocumentControllerHostInstance* instance)
const noexcept override
450 auto* spec =
new SpecialisationType (entry, instance);
451 return spec->getDocumentController();
488 int read (
void*,
int)
override;
489 bool setPosition (
int64)
override;
490 bool isExhausted()
override;
513 bool write (
const void*,
size_t)
override;
514 bool setPosition (
int64)
override;
Controller controller
Definition main.C:5
#define noexcept
Definition DistrhoDefines.h:72
#define nullptr
Definition DistrhoDefines.h:75
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition juce_ARAModelObjects.h:1093
ARAAudioModificationListener Listener
Definition juce_ARAModelObjects.h:1096
Definition juce_ARAModelObjects.h:919
ARAAudioSourceListener Listener
Definition juce_ARAModelObjects.h:923
Definition juce_ARADocumentController.cpp:31
std::vector< ARA::ARAPersistentID > compatibleDocumentArchiveIDs
Definition juce_ARADocumentController.h:461
const char * getManufacturerName() const noexcept override
Definition juce_ARADocumentController.h:417
ARA::PlugIn::DocumentController * createDocumentController(const ARA::PlugIn::PlugInEntry *entry, const ARA::ARADocumentControllerHostInstance *instance) const noexcept override
Definition juce_ARADocumentController.h:447
const char * getPlugInName() const noexcept override
Definition juce_ARADocumentController.h:416
FactoryConfig() noexcept
Definition juce_ARADocumentController.h:367
const ARA::ARAPersistentID * getCompatibleDocumentArchiveIDs() const noexcept override
Definition juce_ARADocumentController.h:427
const char * getFactoryID() const noexcept override
Definition juce_ARADocumentController.h:415
void destroyDocumentController(ARA::PlugIn::DocumentController *controller) const noexcept override
Definition juce_ARADocumentController.h:454
std::vector< ARA::ARAContentType > analyzeableContentTypes
Definition juce_ARADocumentController.h:462
const char * getInformationURL() const noexcept override
Definition juce_ARADocumentController.h:418
const char * getVersion() const noexcept override
Definition juce_ARADocumentController.h:419
ARA::ARAPlaybackTransformationFlags supportedPlaybackTransformationFlags
Definition juce_ARADocumentController.h:463
ARA::ARASize getCompatibleDocumentArchiveIDsCount() const noexcept override
Definition juce_ARADocumentController.h:422
const ARA::ARAContentType * getAnalyzeableContentTypes() const noexcept override
Definition juce_ARADocumentController.h:437
juce::StringArray compatibleDocumentArchiveIDStrings
Definition juce_ARADocumentController.h:460
ARA::ARAPlaybackTransformationFlags getSupportedPlaybackTransformationFlags() const noexcept override
Definition juce_ARADocumentController.h:442
const char * getDocumentArchiveID() const noexcept override
Definition juce_ARADocumentController.h:420
ARA::ARASize getAnalyzeableContentTypesCount() const noexcept override
Definition juce_ARADocumentController.h:432
ARA::PlugIn::DocumentController * getDocumentController() noexcept
Definition juce_ARADocumentController.cpp:269
virtual ARAEditorRenderer * doCreateEditorRenderer()
Definition juce_ARADocumentController.cpp:827
virtual ARA::PlugIn::ContentReader * doCreateAudioSourceContentReader(ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type, const ARA::ARAContentTimeRange *range)
Definition juce_ARADocumentController.cpp:855
virtual void doRequestAudioSourceContentAnalysis(ARA::PlugIn::AudioSource *audioSource, std::vector< ARA::ARAContentType > const &contentTypes)
Definition juce_ARADocumentController.cpp:934
virtual ARAMusicalContext * doCreateMusicalContext(ARADocument *document, ARA::ARAMusicalContextHostRef hostRef)
Definition juce_ARADocumentController.cpp:553
virtual bool doStoreObjectsToStream(ARAOutputStream &output, const ARAStoreObjectsFilter *filter)=0
static Specialisation * getSpecialisedDocumentController(ARA::PlugIn::DocumentController *dc)
Definition juce_ARADocumentController.h:136
std::unique_ptr< ARADocumentControllerImpl > documentController
Definition juce_ARADocumentController.h:473
virtual ARARegionSequence * doCreateRegionSequence(ARADocument *document, ARA::ARARegionSequenceHostRef hostRef)
Definition juce_ARADocumentController.cpp:559
virtual ARAAudioModification * doCreateAudioModification(ARAAudioSource *audioSource, ARA::ARAAudioModificationHostRef hostRef, const ARAAudioModification *optionalModificationToClone)
Definition juce_ARADocumentController.cpp:571
static const ARA::ARAFactory * createARAFactory()
Definition juce_ARADocumentController.h:124
ARADocumentControllerSpecialisation(const ARA::PlugIn::PlugInEntry *entry, const ARA::ARADocumentControllerHostInstance *instance)
Definition juce_ARADocumentController.cpp:813
virtual bool doRestoreObjectsFromStream(ARAInputStream &input, const ARARestoreObjectsFilter *filter)=0
virtual bool doIsPlaybackRegionContentAvailable(const ARA::PlugIn::PlaybackRegion *playbackRegion, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:897
virtual ARA::ARAInt32 doGetProcessingAlgorithmsCount()
Definition juce_ARADocumentController.cpp:940
virtual ARAAudioSource * doCreateAudioSource(ARADocument *document, ARA::ARAAudioSourceHostRef hostRef)
Definition juce_ARADocumentController.cpp:565
virtual ARADocument * doCreateDocument()
Definition juce_ARADocumentController.cpp:548
DocumentType * getDocument()
Definition juce_ARADocumentController.h:143
virtual bool doIsAudioSourceContentAvailable(const ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:837
virtual ARA::PlugIn::ContentReader * doCreateAudioModificationContentReader(ARA::PlugIn::AudioModification *audioModification, ARA::ARAContentType type, const ARA::ARAContentTimeRange *range)
Definition juce_ARADocumentController.cpp:885
virtual bool doIsAudioModificationContentAvailable(const ARA::PlugIn::AudioModification *audioModification, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:867
virtual ARA::ARAContentGrade doGetAudioSourceContentGrade(const ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:844
virtual ARA::PlugIn::ContentReader * doCreatePlaybackRegionContentReader(ARA::PlugIn::PlaybackRegion *playbackRegion, ARA::ARAContentType type, const ARA::ARAContentTimeRange *range)
Definition juce_ARADocumentController.cpp:915
static ARADocumentControllerSpecialisation * getSpecialisedDocumentControllerImpl(ARA::PlugIn::DocumentController *)
Definition juce_ARADocumentController.cpp:308
virtual const ARA::ARAProcessingAlgorithmProperties * doGetProcessingAlgorithmProperties(ARA::ARAInt32 algorithmIndex)
Definition juce_ARADocumentController.cpp:943
virtual ARA::ARAContentGrade doGetPlaybackRegionContentGrade(const ARA::PlugIn::PlaybackRegion *playbackRegion, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:904
virtual ARAPlaybackRegion * doCreatePlaybackRegion(ARAAudioModification *modification, ARA::ARAPlaybackRegionHostRef hostRef)
Definition juce_ARADocumentController.cpp:582
virtual ARAPlaybackRenderer * doCreatePlaybackRenderer()
Definition juce_ARADocumentController.cpp:822
virtual ARA::ARAInt32 doGetProcessingAlgorithmForAudioSource(const ARA::PlugIn::AudioSource *audioSource)
Definition juce_ARADocumentController.cpp:949
ARADocument * getDocumentImpl()
Definition juce_ARADocumentController.cpp:313
virtual bool doIsAudioSourceContentAnalysisIncomplete(const ARA::PlugIn::AudioSource *audioSource, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:927
virtual ARAEditorView * doCreateEditorView()
Definition juce_ARADocumentController.cpp:832
virtual ARA::ARAContentGrade doGetAudioModificationContentGrade(const ARA::PlugIn::AudioModification *audioModification, ARA::ARAContentType type)
Definition juce_ARADocumentController.cpp:874
virtual ~ARADocumentControllerSpecialisation()
virtual void doRequestProcessingAlgorithmForAudioSource(ARA::PlugIn::AudioSource *audioSource, ARA::ARAInt32 algorithmIndex)
Definition juce_ARADocumentController.cpp:960
Definition juce_ARAModelObjects.h:335
ARADocumentListener Listener
Definition juce_ARAModelObjects.h:338
Definition juce_ARAPlugInInstanceRoles.h:170
Definition juce_ARAPlugInInstanceRoles.h:211
Definition juce_ARAModelObjects.h:479
ARAMusicalContextListener Listener
Definition juce_ARAModelObjects.h:482
Definition juce_ARADocumentController.h:506
ARA::PlugIn::HostArchiveWriter * archiveWriter
Definition juce_ARADocumentController.h:517
ARAOutputStream(ARA::PlugIn::HostArchiveWriter *)
Definition juce_ARADocumentController.cpp:793
int64 position
Definition juce_ARADocumentController.h:518
int64 getPosition() override
Definition juce_ARADocumentController.h:510
void flush() override
Definition juce_ARADocumentController.h:511
Definition juce_ARAModelObjects.h:580
ARAPlaybackRegionListener Listener
Definition juce_ARAModelObjects.h:583
Definition juce_ARAPlugInInstanceRoles.h:125
Definition juce_ARAModelObjects.h:727
ARARegionSequenceListener Listener
Definition juce_ARAModelObjects.h:730
OutputStream()
Definition juce_OutputStream.cpp:59
bool isNotEmpty() const noexcept
Definition juce_String.h:316
register unsigned i
Definition inflate.c:1575
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
Definition juce_ARACommon.h:29
Definition carla_juce.cpp:31
long long int64
Definition juce_MathsFunctions.h:54
#define const
Definition zconf.h:137