LMMS
Loading...
Searching...
No Matches
juce_ARAModelObjects.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26#pragma once
27
28namespace juce
29{
30
31class ARADocumentController;
32class ARADocument;
33class ARAMusicalContext;
34class ARARegionSequence;
35class ARAAudioSource;
36class ARAAudioModification;
37class ARAPlaybackRegion;
38
43template <class ListenerType>
45{
46public:
49
51 virtual ~ARAListenableModelClass() = default;
52
56 void addListener (ListenerType* l) { listeners.add (l); }
57
61 void removeListener (ListenerType* l) { listeners.remove (l); }
62
64 template <typename Callback>
65 void notifyListeners (Callback&& callback)
66 {
67 listeners.call (callback);
68 }
69
70private:
72
74};
75
88{
89public:
91 virtual ~ARAObjectVisitor() = default;
92
94 virtual void visitDocument (juce::ARADocument&) {}
95
97 virtual void visitMusicalContext (juce::ARAMusicalContext&) {}
98
100 virtual void visitRegionSequence (juce::ARARegionSequence&) {}
101
103 virtual void visitPlaybackRegion (juce::ARAPlaybackRegion&) {}
104
106 virtual void visitAudioModification (juce::ARAAudioModification&) {}
107
109 virtual void visitAudioSource (juce::ARAAudioSource&) {}
110};
111
118{
119public:
121 virtual ~ARAObject() = default;
122
129 virtual size_t getNumChildren() const noexcept = 0;
130
137 virtual ARAObject* getChild (size_t index) = 0;
138
143 virtual ARAObject* getParent() = 0;
144
150 template <typename Fn>
151 void traverse (Fn&& fn)
152 {
153 fn (*this);
154
155 for (size_t i = 0; i < getNumChildren(); ++i)
156 {
157 getChild (i)->traverse (fn);
158 }
159 }
160
169 virtual void visit (ARAObjectVisitor& visitor) = 0;
170};
171
179{
180public:
182 virtual ~ARADocumentListener() = default;
183
184 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN
185
189 virtual void willBeginEditing (ARADocument* document)
190 {
191 ignoreUnused (document);
192 }
193
197 virtual void didEndEditing (ARADocument* document)
198 {
199 ignoreUnused (document);
200 }
201
205 virtual void willNotifyModelUpdates (ARADocument* document)
206 {
207 ignoreUnused (document);
208 }
209
213 virtual void didNotifyModelUpdates (ARADocument* document)
214 {
215 ignoreUnused (document);
216 }
217
223 ARA::PlugIn::PropertiesPtr<ARA::ARADocumentProperties> newProperties)
224 {
225 ignoreUnused (document, newProperties);
226 }
227
232 {
233 ignoreUnused (document);
234 }
235
240 virtual void didAddMusicalContextToDocument (ARADocument* document, ARAMusicalContext* musicalContext)
241 {
242 ignoreUnused (document, musicalContext);
243 }
244
250 ARAMusicalContext* musicalContext)
251 {
252 ignoreUnused (document, musicalContext);
253 }
254
263 {
264 ignoreUnused (document);
265 }
266
271 virtual void didAddRegionSequenceToDocument (ARADocument* document, ARARegionSequence* regionSequence)
272 {
273 ignoreUnused (document, regionSequence);
274 }
275
281 ARARegionSequence* regionSequence)
282 {
283 ignoreUnused (document, regionSequence);
284 }
285
294 {
295 ignoreUnused (document);
296 }
297
302 virtual void didAddAudioSourceToDocument (ARADocument* document, ARAAudioSource* audioSource)
303 {
304 ignoreUnused (document, audioSource);
305 }
306
311 virtual void willRemoveAudioSourceFromDocument (ARADocument* document, ARAAudioSource* audioSource)
312 {
313 ignoreUnused (document, audioSource);
314 }
315
319 virtual void willDestroyDocument (ARADocument* document)
320 {
321 ignoreUnused (document);
322 }
323
324 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_END
325};
326
327//==============================================================================
332class JUCE_API ARADocument : public ARA::PlugIn::Document,
333 public ARAListenableModelClass<ARADocumentListener>,
334 public ARAObject
335{
336public:
337 using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARADocumentProperties>;
339
340 using ARA::PlugIn::Document::Document;
341
348 template <typename AudioSource_t = ARAAudioSource>
349 const std::vector<AudioSource_t*>& getAudioSources() const noexcept
350 {
351 return ARA::PlugIn::Document::getAudioSources<AudioSource_t>();
352 }
353
360 template <typename MusicalContext_t = ARAMusicalContext>
361 const std::vector<MusicalContext_t*>& getMusicalContexts() const noexcept
362 {
363 return ARA::PlugIn::Document::getMusicalContexts<MusicalContext_t>();
364 }
365
372 template <typename RegionSequence_t = ARARegionSequence>
373 const std::vector<RegionSequence_t*>& getRegionSequences() const noexcept
374 {
375 return ARA::PlugIn::Document::getRegionSequences<RegionSequence_t>();
376 }
377
378 size_t getNumChildren() const noexcept override;
379
380 ARAObject* getChild (size_t index) override;
381
382 ARAObject* getParent() override { return nullptr; }
383
384 void visit (ARAObjectVisitor& visitor) override { visitor.visitDocument (*this); }
385};
386
394{
395public:
396 virtual ~ARAMusicalContextListener() = default;
397
398 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN
399
405 ARA::PlugIn::PropertiesPtr<ARA::ARAMusicalContextProperties> newProperties)
406 {
407 ignoreUnused (musicalContext, newProperties);
408 }
409
414 {
415 ignoreUnused (musicalContext);
416 }
417
423 ARAContentUpdateScopes scopeFlags)
424 {
425 ignoreUnused (musicalContext, scopeFlags);
426 }
427
433 ARARegionSequence* regionSequence)
434 {
435 ignoreUnused (musicalContext, regionSequence);
436 }
437
443 ARARegionSequence* regionSequence)
444 {
445 ignoreUnused (musicalContext, regionSequence);
446 }
447
456 {
457 ignoreUnused (musicalContext);
458 }
459
463 virtual void willDestroyMusicalContext (ARAMusicalContext* musicalContext)
464 {
465 ignoreUnused (musicalContext);
466 }
467
468 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_END
469};
470
471//==============================================================================
476class JUCE_API ARAMusicalContext : public ARA::PlugIn::MusicalContext,
477 public ARAListenableModelClass<ARAMusicalContextListener>,
478 public ARAObject
479{
480public:
481 using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAMusicalContextProperties>;
483
484 using ARA::PlugIn::MusicalContext::MusicalContext;
485
492 template <typename Document_t = ARADocument>
494 {
495 return ARA::PlugIn::MusicalContext::getDocument<Document_t>();
496 }
497
504 template <typename RegionSequence_t = ARARegionSequence>
505 const std::vector<RegionSequence_t*>& getRegionSequences() const noexcept
506 {
507 return ARA::PlugIn::MusicalContext::getRegionSequences<RegionSequence_t>();
508 }
509
510 size_t getNumChildren() const noexcept override { return 0; }
511
512 ARAObject* getChild (size_t) override { return nullptr; }
513
514 ARAObject* getParent() override { return getDocument(); }
515
516 void visit (ARAObjectVisitor& visitor) override { visitor.visitMusicalContext (*this); }
517};
518
526{
527public:
529 virtual ~ARAPlaybackRegionListener() = default;
530
531 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN
532
538 ARA::PlugIn::PropertiesPtr<ARA::ARAPlaybackRegionProperties> newProperties)
539 {
540 ignoreUnused (playbackRegion, newProperties);
541 }
542
547 {
548 ignoreUnused (playbackRegion);
549 }
550
556 ARAContentUpdateScopes scopeFlags)
557 {
558 ignoreUnused (playbackRegion, scopeFlags);
559 }
560
564 virtual void willDestroyPlaybackRegion (ARAPlaybackRegion* playbackRegion)
565 {
566 ignoreUnused (playbackRegion);
567 }
568
569 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_END
570};
571
572//==============================================================================
577class JUCE_API ARAPlaybackRegion : public ARA::PlugIn::PlaybackRegion,
578 public ARAListenableModelClass<ARAPlaybackRegionListener>,
579 public ARAObject
580{
581public:
582 using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAPlaybackRegionProperties>;
584
585 using ARA::PlugIn::PlaybackRegion::PlaybackRegion;
586
593 template <typename AudioModification_t = ARAAudioModification>
594 AudioModification_t* getAudioModification() const noexcept
595 {
596 return ARA::PlugIn::PlaybackRegion::getAudioModification<AudioModification_t>();
597 }
598
605 template <typename RegionSequence_t = ARARegionSequence>
606 RegionSequence_t* getRegionSequence() const noexcept
607 {
608 return ARA::PlugIn::PlaybackRegion::getRegionSequence<RegionSequence_t>();
609 }
610
611 size_t getNumChildren() const noexcept override { return 0; }
612
613 ARAObject* getChild (size_t) override { return nullptr; }
614
615 ARAObject* getParent() override;
616
617 void visit (ARAObjectVisitor& visitor) override { visitor.visitPlaybackRegion (*this); }
618
621 enum class IncludeHeadAndTail { no, yes };
622
627 Range<double> getTimeRange (IncludeHeadAndTail includeHeadAndTail = IncludeHeadAndTail::no) const;
628
635 Range<int64> getSampleRange (double sampleRate, IncludeHeadAndTail includeHeadAndTail = IncludeHeadAndTail::no) const;
636
638 double getHeadTime() const;
639
641 double getTailTime() const;
642
653 void notifyContentChanged (ARAContentUpdateScopes scopeFlags, bool notifyARAHost);
654};
655
663{
664public:
666 virtual ~ARARegionSequenceListener() = default;
667
668 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN
669
675 ARA::PlugIn::PropertiesPtr<ARA::ARARegionSequenceProperties> newProperties)
676 {
677 ignoreUnused (regionSequence, newProperties);
678 }
679
684 {
685 ignoreUnused (regionSequence);
686 }
687
693 ARAPlaybackRegion* playbackRegion)
694 {
695 ignoreUnused (regionSequence, playbackRegion);
696 }
697
703 ARAPlaybackRegion* playbackRegion)
704 {
705 ignoreUnused (regionSequence, playbackRegion);
706 }
707
711 virtual void willDestroyRegionSequence (ARARegionSequence* regionSequence)
712 {
713 ignoreUnused (regionSequence);
714 }
715
716 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_END
717};
718
719//==============================================================================
724class JUCE_API ARARegionSequence : public ARA::PlugIn::RegionSequence,
725 public ARAListenableModelClass<ARARegionSequenceListener>,
726 public ARAObject
727{
728public:
729 using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARARegionSequenceProperties>;
731
732 using ARA::PlugIn::RegionSequence::RegionSequence;
733
740 template <typename Document_t = ARADocument>
742 {
743 return ARA::PlugIn::RegionSequence::getDocument<Document_t>();
744 }
745
752 template <typename MusicalContext_t = ARAMusicalContext>
753 MusicalContext_t* getMusicalContext() const noexcept
754 {
755 return ARA::PlugIn::RegionSequence::getMusicalContext<MusicalContext_t>();
756 }
757
764 template <typename PlaybackRegion_t = ARAPlaybackRegion>
765 const std::vector<PlaybackRegion_t*>& getPlaybackRegions() const noexcept
766 {
767 return ARA::PlugIn::RegionSequence::getPlaybackRegions<PlaybackRegion_t>();
768 }
769
770 size_t getNumChildren() const noexcept override;
771
772 ARAObject* getChild (size_t index) override;
773
774 ARAObject* getParent () override { return getDocument(); }
775
776 void visit (ARAObjectVisitor& visitor) override { visitor.visitRegionSequence (*this); }
777
782
788 double getCommonSampleRate() const;
789};
790
798{
799public:
801 virtual ~ARAAudioSourceListener() = default;
802
803 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN
804
810 ARA::PlugIn::PropertiesPtr<ARA::ARAAudioSourceProperties> newProperties)
811 {
812 ignoreUnused (audioSource, newProperties);
813 }
814
819 {
820 ignoreUnused (audioSource);
821 }
822
827 virtual void doUpdateAudioSourceContent (ARAAudioSource* audioSource, ARAContentUpdateScopes scopeFlags)
828 {
829 ignoreUnused (audioSource, scopeFlags);
830 }
831
838 ARA::ARAAnalysisProgressState state,
839 float progress)
840 {
841 ignoreUnused (audioSource, state, progress);
842 }
843
848 virtual void willEnableAudioSourceSamplesAccess (ARAAudioSource* audioSource, bool enable)
849 {
850 ignoreUnused (audioSource, enable);
851 }
852
857 virtual void didEnableAudioSourceSamplesAccess (ARAAudioSource* audioSource, bool enable)
858 {
859 ignoreUnused (audioSource, enable);
860 }
861
867 {
868 ignoreUnused (audioSource, deactivate);
869 }
870
876 {
877 ignoreUnused (audioSource, deactivate);
878 }
879
885 ARAAudioModification* audioModification)
886 {
887 ignoreUnused (audioSource, audioModification);
888 }
889
895 ARAAudioModification* audioModification)
896 {
897 ignoreUnused (audioSource, audioModification);
898 }
899
903 virtual void willDestroyAudioSource (ARAAudioSource* audioSource)
904 {
905 ignoreUnused (audioSource);
906 }
907
908 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_END
909};
910
911//==============================================================================
916class JUCE_API ARAAudioSource : public ARA::PlugIn::AudioSource,
917 public ARAListenableModelClass<ARAAudioSourceListener>,
918 public ARAObject
919{
920public:
921 using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAAudioSourceProperties>;
922 using ARAAnalysisProgressState = ARA::ARAAnalysisProgressState;
924
925 using ARA::PlugIn::AudioSource::AudioSource;
926
933 template <typename Document_t = ARADocument>
935 {
936 return ARA::PlugIn::AudioSource::getDocument<Document_t>();
937 }
938
946 template <typename AudioModification_t = ARAAudioModification>
947 const std::vector<AudioModification_t*>& getAudioModifications() const noexcept
948 {
949 return ARA::PlugIn::AudioSource::getAudioModifications<AudioModification_t>();
950 }
951
952 size_t getNumChildren() const noexcept override;
953
954 ARAObject* getChild (size_t index) override;
955
956 ARAObject* getParent() override { return getDocument(); }
957
958 void visit (ARAObjectVisitor& visitor) override { visitor.visitAudioSource (*this); }
959
966 void notifyAnalysisProgressStarted();
967
971 void notifyAnalysisProgressUpdated (float progress);
972
975 void notifyAnalysisProgressCompleted();
976
988 void notifyContentChanged (ARAContentUpdateScopes scopeFlags, bool notifyARAHost);
989
990public:
992 ARA::PlugIn::AnalysisProgressTracker internalAnalysisProgressTracker;
993};
994
1002{
1003public:
1006
1007 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN
1008
1014 ARA::PlugIn::PropertiesPtr<ARA::ARAAudioModificationProperties> newProperties)
1015 {
1016 ignoreUnused (audioModification, newProperties);
1017 }
1018
1023 {
1024 ignoreUnused (audioModification);
1025 }
1026
1031 virtual void didUpdateAudioModificationContent (ARAAudioModification* audioModification, ARAContentUpdateScopes scopeFlags)
1032 {
1033 ignoreUnused (audioModification, scopeFlags);
1034 }
1035
1041 {
1042 ignoreUnused (audioModification, deactivate);
1043 }
1044
1050 {
1051 ignoreUnused (audioModification, deactivate);
1052 }
1053
1059 ARAPlaybackRegion* playbackRegion)
1060 {
1061 ignoreUnused (audioModification, playbackRegion);
1062 }
1063
1069 ARAPlaybackRegion* playbackRegion)
1070 {
1071 ignoreUnused (audioModification, playbackRegion);
1072 }
1073
1077 virtual void willDestroyAudioModification (ARAAudioModification* audioModification)
1078 {
1079 ignoreUnused (audioModification);
1080 }
1081
1082 ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_END
1083};
1084
1085//==============================================================================
1090class JUCE_API ARAAudioModification : public ARA::PlugIn::AudioModification,
1091 public ARAListenableModelClass<ARAAudioModificationListener>,
1092 public ARAObject
1093{
1094public:
1095 using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAAudioModificationProperties>;
1097
1098 using ARA::PlugIn::AudioModification::AudioModification;
1099
1106 template <typename AudioSource_t = ARAAudioSource>
1108 {
1109 return ARA::PlugIn::AudioModification::getAudioSource<AudioSource_t>();
1110 }
1111
1118 template <typename PlaybackRegion_t = ARAPlaybackRegion>
1119 const std::vector<PlaybackRegion_t*>& getPlaybackRegions() const noexcept
1120 {
1121 return ARA::PlugIn::AudioModification::getPlaybackRegions<PlaybackRegion_t>();
1122 }
1123
1124 size_t getNumChildren() const noexcept override;
1125
1126 ARAObject* getChild (size_t index) override;
1127
1128 ARAObject* getParent() override { return getAudioSource(); }
1129
1130 void visit (ARAObjectVisitor& visitor) override { visitor.visitAudioModification (*this); }
1131
1142 void notifyContentChanged (ARAContentUpdateScopes scopeFlags, bool notifyARAHost);
1143};
1144
1145} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
#define override
Definition DistrhoDefines.h:73
static void deactivate(LV2_Handle instance)
Definition bindings_test_plugin.c:128
Definition juce_ARAModelObjects.h:1093
const std::vector< PlaybackRegion_t * > & getPlaybackRegions() const noexcept
Definition juce_ARAModelObjects.h:1119
void visit(ARAObjectVisitor &visitor) override
Definition juce_ARAModelObjects.h:1130
AudioSource_t * getAudioSource() const noexcept
Definition juce_ARAModelObjects.h:1107
ARA::PlugIn::PropertiesPtr< ARA::ARAAudioModificationProperties > PropertiesPtr
Definition juce_ARAModelObjects.h:1095
ARAAudioModificationListener Listener
Definition juce_ARAModelObjects.h:1096
ARAObject * getParent() override
Definition juce_ARAModelObjects.h:1128
Definition juce_ARAModelObjects.h:1002
virtual void willDestroyAudioModification(ARAAudioModification *audioModification)
Definition juce_ARAModelObjects.h:1077
virtual void didAddPlaybackRegionToAudioModification(ARAAudioModification *audioModification, ARAPlaybackRegion *playbackRegion)
Definition juce_ARAModelObjects.h:1058
virtual void didUpdateAudioModificationProperties(ARAAudioModification *audioModification)
Definition juce_ARAModelObjects.h:1022
virtual void didUpdateAudioModificationContent(ARAAudioModification *audioModification, ARAContentUpdateScopes scopeFlags)
Definition juce_ARAModelObjects.h:1031
virtual void didDeactivateAudioModificationForUndoHistory(ARAAudioModification *audioModification, bool deactivate)
Definition juce_ARAModelObjects.h:1049
virtual void willDeactivateAudioModificationForUndoHistory(ARAAudioModification *audioModification, bool deactivate)
Definition juce_ARAModelObjects.h:1040
virtual ~ARAAudioModificationListener()=default
virtual void willRemovePlaybackRegionFromAudioModification(ARAAudioModification *audioModification, ARAPlaybackRegion *playbackRegion)
Definition juce_ARAModelObjects.h:1068
virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void willUpdateAudioModificationProperties(ARAAudioModification *audioModification, ARA::PlugIn::PropertiesPtr< ARA::ARAAudioModificationProperties > newProperties)
Definition juce_ARAModelObjects.h:1013
Definition juce_ARAModelObjects.h:919
ARA::ARAAnalysisProgressState ARAAnalysisProgressState
Definition juce_ARAModelObjects.h:922
const std::vector< AudioModification_t * > & getAudioModifications() const noexcept
Definition juce_ARAModelObjects.h:947
Document_t * getDocument() const noexcept
Definition juce_ARAModelObjects.h:934
ARA::PlugIn::AnalysisProgressTracker internalAnalysisProgressTracker
Definition juce_ARAModelObjects.h:992
void visit(ARAObjectVisitor &visitor) override
Definition juce_ARAModelObjects.h:958
ARAAudioSourceListener Listener
Definition juce_ARAModelObjects.h:923
ARAObject * getParent() override
Definition juce_ARAModelObjects.h:956
friend ARADocumentController
Definition juce_ARAModelObjects.h:991
ARA::PlugIn::PropertiesPtr< ARA::ARAAudioSourceProperties > PropertiesPtr
Definition juce_ARAModelObjects.h:921
Definition juce_ARAModelObjects.h:798
virtual void willEnableAudioSourceSamplesAccess(ARAAudioSource *audioSource, bool enable)
Definition juce_ARAModelObjects.h:848
virtual void willDeactivateAudioSourceForUndoHistory(ARAAudioSource *audioSource, bool deactivate)
Definition juce_ARAModelObjects.h:866
virtual void didUpdateAudioSourceAnalysisProgress(ARAAudioSource *audioSource, ARA::ARAAnalysisProgressState state, float progress)
Definition juce_ARAModelObjects.h:837
virtual void willRemoveAudioModificationFromAudioSource(ARAAudioSource *audioSource, ARAAudioModification *audioModification)
Definition juce_ARAModelObjects.h:894
virtual void willDestroyAudioSource(ARAAudioSource *audioSource)
Definition juce_ARAModelObjects.h:903
virtual void didEnableAudioSourceSamplesAccess(ARAAudioSource *audioSource, bool enable)
Definition juce_ARAModelObjects.h:857
virtual ~ARAAudioSourceListener()=default
virtual void didUpdateAudioSourceProperties(ARAAudioSource *audioSource)
Definition juce_ARAModelObjects.h:818
virtual void didAddAudioModificationToAudioSource(ARAAudioSource *audioSource, ARAAudioModification *audioModification)
Definition juce_ARAModelObjects.h:884
virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void willUpdateAudioSourceProperties(ARAAudioSource *audioSource, ARA::PlugIn::PropertiesPtr< ARA::ARAAudioSourceProperties > newProperties)
Definition juce_ARAModelObjects.h:809
virtual void doUpdateAudioSourceContent(ARAAudioSource *audioSource, ARAContentUpdateScopes scopeFlags)
Definition juce_ARAModelObjects.h:827
virtual void didDeactivateAudioSourceForUndoHistory(ARAAudioSource *audioSource, bool deactivate)
Definition juce_ARAModelObjects.h:875
Definition juce_ARAModelObjects.h:335
ARAObject * getParent() override
Definition juce_ARAModelObjects.h:382
const std::vector< MusicalContext_t * > & getMusicalContexts() const noexcept
Definition juce_ARAModelObjects.h:361
const std::vector< RegionSequence_t * > & getRegionSequences() const noexcept
Definition juce_ARAModelObjects.h:373
const std::vector< AudioSource_t * > & getAudioSources() const noexcept
Definition juce_ARAModelObjects.h:349
void visit(ARAObjectVisitor &visitor) override
Definition juce_ARAModelObjects.h:384
ARADocumentListener Listener
Definition juce_ARAModelObjects.h:338
ARA::PlugIn::PropertiesPtr< ARA::ARADocumentProperties > PropertiesPtr
Definition juce_ARAModelObjects.h:337
Definition juce_ARAModelObjects.h:179
virtual void willRemoveAudioSourceFromDocument(ARADocument *document, ARAAudioSource *audioSource)
Definition juce_ARAModelObjects.h:311
virtual void didAddAudioSourceToDocument(ARADocument *document, ARAAudioSource *audioSource)
Definition juce_ARAModelObjects.h:302
virtual void didAddMusicalContextToDocument(ARADocument *document, ARAMusicalContext *musicalContext)
Definition juce_ARAModelObjects.h:240
virtual void willUpdateDocumentProperties(ARADocument *document, ARA::PlugIn::PropertiesPtr< ARA::ARADocumentProperties > newProperties)
Definition juce_ARAModelObjects.h:222
virtual void didReorderMusicalContextsInDocument(ARADocument *document)
Definition juce_ARAModelObjects.h:262
virtual void willNotifyModelUpdates(ARADocument *document)
Definition juce_ARAModelObjects.h:205
virtual void didAddRegionSequenceToDocument(ARADocument *document, ARARegionSequence *regionSequence)
Definition juce_ARAModelObjects.h:271
virtual void willDestroyDocument(ARADocument *document)
Definition juce_ARAModelObjects.h:319
virtual ~ARADocumentListener()=default
virtual void didUpdateDocumentProperties(ARADocument *document)
Definition juce_ARAModelObjects.h:231
virtual void didNotifyModelUpdates(ARADocument *document)
Definition juce_ARAModelObjects.h:213
virtual void willRemoveMusicalContextFromDocument(ARADocument *document, ARAMusicalContext *musicalContext)
Definition juce_ARAModelObjects.h:249
virtual void didReorderRegionSequencesInDocument(ARADocument *document)
Definition juce_ARAModelObjects.h:293
virtual void didEndEditing(ARADocument *document)
Definition juce_ARAModelObjects.h:197
virtual void willRemoveRegionSequenceFromDocument(ARADocument *document, ARARegionSequence *regionSequence)
Definition juce_ARAModelObjects.h:280
virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void willBeginEditing(ARADocument *document)
Definition juce_ARAModelObjects.h:189
void addListener(ListenerType *l)
Definition juce_ARAModelObjects.h:56
void removeListener(ListenerType *l)
Definition juce_ARAModelObjects.h:61
virtual ~ARAListenableModelClass()=default
ListenerList< ListenerType > listeners
Definition juce_ARAModelObjects.h:71
void notifyListeners(Callback &&callback)
Definition juce_ARAModelObjects.h:65
Definition juce_ARAModelObjects.h:479
const std::vector< RegionSequence_t * > & getRegionSequences() const noexcept
Definition juce_ARAModelObjects.h:505
size_t getNumChildren() const noexcept override
Definition juce_ARAModelObjects.h:510
ARAObject * getParent() override
Definition juce_ARAModelObjects.h:514
void visit(ARAObjectVisitor &visitor) override
Definition juce_ARAModelObjects.h:516
ARAMusicalContextListener Listener
Definition juce_ARAModelObjects.h:482
ARAObject * getChild(size_t) override
Definition juce_ARAModelObjects.h:512
ARA::PlugIn::PropertiesPtr< ARA::ARAMusicalContextProperties > PropertiesPtr
Definition juce_ARAModelObjects.h:481
Document_t * getDocument() const noexcept
Definition juce_ARAModelObjects.h:493
Definition juce_ARAModelObjects.h:394
virtual void didAddRegionSequenceToMusicalContext(ARAMusicalContext *musicalContext, ARARegionSequence *regionSequence)
Definition juce_ARAModelObjects.h:432
virtual ~ARAMusicalContextListener()=default
virtual void didReorderRegionSequencesInMusicalContext(ARAMusicalContext *musicalContext)
Definition juce_ARAModelObjects.h:455
virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void willUpdateMusicalContextProperties(ARAMusicalContext *musicalContext, ARA::PlugIn::PropertiesPtr< ARA::ARAMusicalContextProperties > newProperties)
Definition juce_ARAModelObjects.h:404
virtual void doUpdateMusicalContextContent(ARAMusicalContext *musicalContext, ARAContentUpdateScopes scopeFlags)
Definition juce_ARAModelObjects.h:422
virtual void willRemoveRegionSequenceFromMusicalContext(ARAMusicalContext *musicalContext, ARARegionSequence *regionSequence)
Definition juce_ARAModelObjects.h:442
virtual void didUpdateMusicalContextProperties(ARAMusicalContext *musicalContext)
Definition juce_ARAModelObjects.h:413
virtual void willDestroyMusicalContext(ARAMusicalContext *musicalContext)
Definition juce_ARAModelObjects.h:463
Definition juce_ARAModelObjects.h:118
virtual ARAObject * getChild(size_t index)=0
virtual size_t getNumChildren() const noexcept=0
virtual ARAObject * getParent()=0
void traverse(Fn &&fn)
Definition juce_ARAModelObjects.h:151
virtual void visit(ARAObjectVisitor &visitor)=0
virtual ~ARAObject()=default
Definition juce_ARAModelObjects.h:88
virtual void visitAudioSource(juce::ARAAudioSource &)
Definition juce_ARAModelObjects.h:109
virtual void visitMusicalContext(juce::ARAMusicalContext &)
Definition juce_ARAModelObjects.h:97
virtual void visitDocument(juce::ARADocument &)
Definition juce_ARAModelObjects.h:94
virtual void visitRegionSequence(juce::ARARegionSequence &)
Definition juce_ARAModelObjects.h:100
virtual void visitAudioModification(juce::ARAAudioModification &)
Definition juce_ARAModelObjects.h:106
virtual void visitPlaybackRegion(juce::ARAPlaybackRegion &)
Definition juce_ARAModelObjects.h:103
virtual ~ARAObjectVisitor()=default
Definition juce_ARAModelObjects.h:580
IncludeHeadAndTail
Definition juce_ARAModelObjects.h:621
@ no
Definition juce_ARAModelObjects.h:621
void visit(ARAObjectVisitor &visitor) override
Definition juce_ARAModelObjects.h:617
ARAPlaybackRegionListener Listener
Definition juce_ARAModelObjects.h:583
RegionSequence_t * getRegionSequence() const noexcept
Definition juce_ARAModelObjects.h:606
AudioModification_t * getAudioModification() const noexcept
Definition juce_ARAModelObjects.h:594
ARA::PlugIn::PropertiesPtr< ARA::ARAPlaybackRegionProperties > PropertiesPtr
Definition juce_ARAModelObjects.h:582
size_t getNumChildren() const noexcept override
Definition juce_ARAModelObjects.h:611
ARAObject * getChild(size_t) override
Definition juce_ARAModelObjects.h:613
Definition juce_ARAModelObjects.h:526
virtual void didUpdatePlaybackRegionContent(ARAPlaybackRegion *playbackRegion, ARAContentUpdateScopes scopeFlags)
Definition juce_ARAModelObjects.h:555
virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void willUpdatePlaybackRegionProperties(ARAPlaybackRegion *playbackRegion, ARA::PlugIn::PropertiesPtr< ARA::ARAPlaybackRegionProperties > newProperties)
Definition juce_ARAModelObjects.h:537
virtual ~ARAPlaybackRegionListener()=default
virtual void willDestroyPlaybackRegion(ARAPlaybackRegion *playbackRegion)
Definition juce_ARAModelObjects.h:564
virtual void didUpdatePlaybackRegionProperties(ARAPlaybackRegion *playbackRegion)
Definition juce_ARAModelObjects.h:546
Definition juce_ARAModelObjects.h:727
ARARegionSequenceListener Listener
Definition juce_ARAModelObjects.h:730
ARA::PlugIn::PropertiesPtr< ARA::ARARegionSequenceProperties > PropertiesPtr
Definition juce_ARAModelObjects.h:729
Document_t * getDocument() const noexcept
Definition juce_ARAModelObjects.h:741
const std::vector< PlaybackRegion_t * > & getPlaybackRegions() const noexcept
Definition juce_ARAModelObjects.h:765
void visit(ARAObjectVisitor &visitor) override
Definition juce_ARAModelObjects.h:776
MusicalContext_t * getMusicalContext() const noexcept
Definition juce_ARAModelObjects.h:753
ARAObject * getParent() override
Definition juce_ARAModelObjects.h:774
Definition juce_ARAModelObjects.h:663
virtual void didUpdateRegionSequenceProperties(ARARegionSequence *regionSequence)
Definition juce_ARAModelObjects.h:683
virtual void didAddPlaybackRegionToRegionSequence(ARARegionSequence *regionSequence, ARAPlaybackRegion *playbackRegion)
Definition juce_ARAModelObjects.h:702
virtual void willDestroyRegionSequence(ARARegionSequence *regionSequence)
Definition juce_ARAModelObjects.h:711
virtual ARA_DISABLE_UNREFERENCED_PARAMETER_WARNING_BEGIN void willUpdateRegionSequenceProperties(ARARegionSequence *regionSequence, ARA::PlugIn::PropertiesPtr< ARA::ARARegionSequenceProperties > newProperties)
Definition juce_ARAModelObjects.h:674
virtual ~ARARegionSequenceListener()=default
virtual void willRemovePlaybackRegionFromRegionSequence(ARARegionSequence *regionSequence, ARAPlaybackRegion *playbackRegion)
Definition juce_ARAModelObjects.h:692
Definition juce_ListenerList.h:70
Definition juce_Range.h:40
int * l
Definition inflate.c:1579
register unsigned i
Definition inflate.c:1575
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
@ no
Definition juce_AlertWindow.cpp:567
@ yes
Definition juce_AlertWindow.cpp:567
void ignoreUnused(Types &&...) noexcept
Definition juce_MathsFunctions.h:333
const char const char const char const char char * fn
Definition swell-functions.h:168
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
#define const
Definition zconf.h:137