LMMS
Loading...
Searching...
No Matches
juce_ExtensionsVisitor.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#ifndef DOXYGEN
27
28// Forward declarations to avoid leaking implementation details.
29namespace Steinberg
30{
31 namespace Vst
32 {
33 class IComponent;
34 }
35} // namespace Steinberg
36
37#endif
38
39//==============================================================================
40#if TARGET_OS_IPHONE
41struct OpaqueAudioComponentInstance;
42typedef struct OpaqueAudioComponentInstance* AudioComponentInstance;
43#else
44struct ComponentInstanceRecord;
45typedef struct ComponentInstanceRecord* AudioComponentInstance;
46#endif
47
49
50//==============================================================================
51/* If you are including the VST headers inside a namespace this forward
52 declaration may cause a collision with the contents of `aeffect.h`.
53
54 If that is the case you can avoid the collision by placing a `struct AEffect;`
55 forward declaration inside the namespace and before the inclusion of the VST
56 headers, e.g. @code
57
58 namespace Vst2
59 {
60 struct AEffect;
61 #include <pluginterfaces/vst2.x/aeffect.h>
62 #include <pluginterfaces/vst2.x/aeffectx.h>
63 }
64 @endcode
65*/
66#ifndef _VESTIGE_H
67struct AEffect;
68#endif
69
70//==============================================================================
71namespace juce
72{
73
74//==============================================================================
90{
92 struct Unknown {};
93
96 {
97 virtual ~VST3Client() = default;
99
101 virtual bool setPreset (const MemoryBlock&) const = 0;
102 };
103
106 {
107 virtual ~AudioUnitClient() = default;
109 };
110
113 {
114 virtual ~VSTClient() = default;
116 };
117
120 {
121 virtual ~ARAClient() = default;
122 virtual void createARAFactoryAsync (std::function<void (ARAFactoryWrapper)>) const = 0;
123 };
124
125 ExtensionsVisitor() = default;
126
129
130 ExtensionsVisitor& operator= (const ExtensionsVisitor&) = default;
131 ExtensionsVisitor& operator= (ExtensionsVisitor&&) = default;
132
133 virtual ~ExtensionsVisitor() = default;
134
136 virtual void visitUnknown (const Unknown&) {}
137
139 virtual void visitVST3Client (const VST3Client&) {}
140
142 virtual void visitVSTClient (const VSTClient&) {}
143
145 virtual void visitAudioUnitClient (const AudioUnitClient&) {}
146
148 virtual void visitARAClient (const ARAClient&) {}
149};
150
151} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition aeffectx.h:221
Definition ivstcomponent.h:158
Definition juce_ARACommon.h:42
Definition juce_MemoryBlock.h:33
AudioComponentInstance AudioUnit
Definition juce_ExtensionsVisitor.h:48
struct ComponentInstanceRecord * AudioComponentInstance
Definition juce_ExtensionsVisitor.h:45
Definition ivstattributes.h:28
Definition baseiids.cpp:43
Definition carla_juce.cpp:31
Definition juce_ExtensionsVisitor.h:120
virtual void createARAFactoryAsync(std::function< void(ARAFactoryWrapper)>) const =0
Definition juce_ExtensionsVisitor.h:106
virtual AudioUnit getAudioUnitHandle() const noexcept=0
Definition juce_ExtensionsVisitor.h:92
Definition juce_ExtensionsVisitor.h:96
virtual Steinberg::Vst::IComponent * getIComponentPtr() const noexcept=0
virtual bool setPreset(const MemoryBlock &) const =0
virtual MemoryBlock getPreset() const =0
Definition juce_ExtensionsVisitor.h:113
virtual AEffect * getAEffectPtr() const noexcept=0
virtual void visitVST3Client(const VST3Client &)
Definition juce_ExtensionsVisitor.h:139
virtual void visitVSTClient(const VSTClient &)
Definition juce_ExtensionsVisitor.h:142
virtual void visitAudioUnitClient(const AudioUnitClient &)
Definition juce_ExtensionsVisitor.h:145
ExtensionsVisitor(const ExtensionsVisitor &)=default
virtual void visitUnknown(const Unknown &)
Definition juce_ExtensionsVisitor.h:136
virtual ~ExtensionsVisitor()=default
virtual void visitARAClient(const ARAClient &)
Definition juce_ExtensionsVisitor.h:148
ExtensionsVisitor(ExtensionsVisitor &&)=default
#define const
Definition zconf.h:137