JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_PluginHostType.cpp
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#if JucePlugin_Enable_IAA && JucePlugin_Build_Standalone && JUCE_IOS && (! JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP)
27 bool JUCE_CALLTYPE juce_isInterAppAudioConnected();
28 void JUCE_CALLTYPE juce_switchToHostApplication();
29 juce::Image JUCE_CALLTYPE juce_getIAAHostIcon (int);
30#endif
31
32namespace juce
33{
34
35Image JUCE_API getIconFromApplication (const String&, const int);
36
37AudioProcessor::WrapperType PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_Undefined;
38std::function<bool (AudioProcessor&)> PluginHostType::jucePlugInIsRunningInAudioSuiteFn = nullptr;
39String PluginHostType::hostIdReportedByWrapper;
40
42{
43 #if JucePlugin_Enable_IAA && JucePlugin_Build_Standalone && JUCE_IOS && (! JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP)
44 if (getPluginLoadedAs() == AudioProcessor::wrapperType_Standalone)
46 #endif
47
48 return false;
49}
50
52{
53 #if JucePlugin_Enable_IAA && JucePlugin_Build_Standalone && JUCE_IOS && (! JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP)
54 if (getPluginLoadedAs() == AudioProcessor::wrapperType_Standalone)
56 #endif
57}
58
60{
61 #if JucePlugin_Build_AAX
62 if (PluginHostType::getPluginLoadedAs() == AudioProcessor::wrapperType_AAX
64 {
65 return jucePlugInIsRunningInAudioSuiteFn (processor);
66 }
67 #endif
68
69 return false;
70}
71
73{
74 #if JucePlugin_Enable_IAA && JucePlugin_Build_Standalone && JUCE_IOS && (! JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP)
76 return juce_getIAAHostIcon (size);
77 #endif
78
79 #if JUCE_MAC
80 String bundlePath (getHostPath().upToLastOccurrenceOf (".app", true, true));
81 return getIconFromApplication (bundlePath, size);
82 #endif
83
84 return Image();
85}
86
88{
89 switch (type)
90 {
91 case AbletonLive6: return "Ableton Live 6";
92 case AbletonLive7: return "Ableton Live 7";
93 case AbletonLive8: return "Ableton Live 8";
94 case AbletonLive9: return "Ableton Live 9";
95 case AbletonLive10: return "Ableton Live 10";
96 case AbletonLive11: return "Ableton Live 11";
97 case AbletonLiveGeneric: return "Ableton Live";
98 case AdobeAudition: return "Adobe Audition";
99 case AdobePremierePro: return "Adobe Premiere";
100 case AppleGarageBand: return "Apple GarageBand";
101 case AppleInfoHelper: return "com.apple.audio.InfoHelper";
102 case AppleLogic: return "Apple Logic";
103 case AppleMainStage: return "Apple MainStage";
104 case Ardour: return "Ardour";
105 case AULab: return "AU Lab";
106 case AUVal: return "auval";
107 case AvidProTools: return "ProTools";
108 case BitwigStudio: return "Bitwig Studio";
109 case CakewalkSonar8: return "Cakewalk Sonar 8";
110 case CakewalkSonarGeneric: return "Cakewalk Sonar";
111 case CakewalkByBandlab: return "Cakewalk by Bandlab";
112 case DaVinciResolve: return "DaVinci Resolve";
113 case DigitalPerformer: return "DigitalPerformer";
114 case FinalCut: return "Final Cut";
115 case FruityLoops: return "FruityLoops";
116 case JUCEPluginHost: return "JUCE AudioPluginHost";
117 case MagixSamplitude: return "Magix Samplitude";
118 case MagixSequoia: return "Magix Sequoia";
119 case pluginval: return "pluginval";
120 case MergingPyramix: return "Pyramix";
121 case MuseReceptorGeneric: return "Muse Receptor";
122 case Maschine: return "NI Maschine";
123 case Reaper: return "Reaper";
124 case Reason: return "Reason";
125 case Renoise: return "Renoise";
126 case SADiE: return "SADiE";
127 case SteinbergCubase4: return "Steinberg Cubase 4";
128 case SteinbergCubase5: return "Steinberg Cubase 5";
129 case SteinbergCubase5Bridged: return "Steinberg Cubase 5 Bridged";
130 case SteinbergCubase6: return "Steinberg Cubase 6";
131 case SteinbergCubase7: return "Steinberg Cubase 7";
132 case SteinbergCubase8: return "Steinberg Cubase 8";
133 case SteinbergCubase8_5: return "Steinberg Cubase 8.5";
134 case SteinbergCubase9: return "Steinberg Cubase 9";
135 case SteinbergCubase9_5: return "Steinberg Cubase 9.5";
136 case SteinbergCubase10: return "Steinberg Cubase 10";
137 case SteinbergCubase10_5: return "Steinberg Cubase 10.5";
138 case SteinbergCubaseGeneric: return "Steinberg Cubase";
139 case SteinbergNuendo3: return "Steinberg Nuendo 3";
140 case SteinbergNuendo4: return "Steinberg Nuendo 4";
141 case SteinbergNuendo5: return "Steinberg Nuendo 5";
142 case SteinbergNuendoGeneric: return "Steinberg Nuendo";
143 case SteinbergWavelab5: return "Steinberg Wavelab 5";
144 case SteinbergWavelab6: return "Steinberg Wavelab 6";
145 case SteinbergWavelab7: return "Steinberg Wavelab 7";
146 case SteinbergWavelab8: return "Steinberg Wavelab 8";
147 case SteinbergWavelabGeneric: return "Steinberg Wavelab";
148 case SteinbergTestHost: return "Steinberg TestHost";
149 case StudioOne: return "Studio One";
150 case Tracktion3: return "Tracktion 3";
151 case TracktionGeneric: return "Tracktion";
152 case TracktionWaveform: return "Tracktion Waveform";
153 case VBVSTScanner: return "VBVSTScanner";
154 case ViennaEnsemblePro: return "Vienna Ensemble Pro";
155 case WaveBurner: return "WaveBurner";
156 case UnknownHost:
157 default: break;
158 }
159
160 return "Unknown";
161}
162
163PluginHostType::HostType PluginHostType::getHostType()
164{
165 auto hostPath = getHostPath();
167
168 #if JUCE_MAC
169 if (hostPath.containsIgnoreCase ("Final Cut Pro.app")) return FinalCut;
170 if (hostPath.containsIgnoreCase ("Final Cut Pro Trial.app")) return FinalCut;
171 if (hostPath.containsIgnoreCase ("Live 6")) return AbletonLive6;
172 if (hostPath.containsIgnoreCase ("Live 7")) return AbletonLive7;
173 if (hostPath.containsIgnoreCase ("Live 8")) return AbletonLive8;
174 if (hostPath.containsIgnoreCase ("Live 9")) return AbletonLive9;
175 if (hostPath.containsIgnoreCase ("Live 10")) return AbletonLive10;
176 if (hostPath.containsIgnoreCase ("Live 11")) return AbletonLive11;
177 if (hostFilename.containsIgnoreCase ("Live")) return AbletonLiveGeneric;
178 if (hostFilename.containsIgnoreCase ("Audition")) return AdobeAudition;
179 if (hostFilename.containsIgnoreCase ("Adobe Premiere")) return AdobePremierePro;
180 if (hostFilename.containsIgnoreCase ("GarageBand")) return AppleGarageBand;
181 if (hostFilename.containsIgnoreCase ("Logic")) return AppleLogic;
182 if (hostFilename.containsIgnoreCase ("MainStage")) return AppleMainStage;
183 if (hostFilename.containsIgnoreCase ("AU Lab")) return AULab;
184 if (hostFilename.containsIgnoreCase ("Pro Tools")) return AvidProTools;
185 if (hostFilename.containsIgnoreCase ("Nuendo 3")) return SteinbergNuendo3;
186 if (hostFilename.containsIgnoreCase ("Nuendo 4")) return SteinbergNuendo4;
187 if (hostFilename.containsIgnoreCase ("Nuendo 5")) return SteinbergNuendo5;
188 if (hostFilename.containsIgnoreCase ("Nuendo")) return SteinbergNuendoGeneric;
189 if (hostFilename.containsIgnoreCase ("Cubase 4")) return SteinbergCubase4;
190 if (hostFilename.containsIgnoreCase ("Cubase 5")) return SteinbergCubase5;
191 if (hostFilename.containsIgnoreCase ("Cubase 6")) return SteinbergCubase6;
192 if (hostFilename.containsIgnoreCase ("Cubase 7")) return SteinbergCubase7;
193 if (hostPath.containsIgnoreCase ("Cubase 8.app")) return SteinbergCubase8;
194 if (hostPath.containsIgnoreCase ("Cubase 8.5.app")) return SteinbergCubase8_5;
195 if (hostPath.containsIgnoreCase ("Cubase 9.app")) return SteinbergCubase9;
196 if (hostPath.containsIgnoreCase ("Cubase 9.5.app")) return SteinbergCubase9_5;
197 if (hostPath.containsIgnoreCase ("Cubase 10.app")) return SteinbergCubase10;
198 if (hostPath.containsIgnoreCase ("Cubase 10.5.app")) return SteinbergCubase10_5;
199 if (hostFilename.containsIgnoreCase ("Cubase")) return SteinbergCubaseGeneric;
200 if (hostPath.containsIgnoreCase ("Wavelab 7")) return SteinbergWavelab7;
201 if (hostPath.containsIgnoreCase ("Wavelab 8")) return SteinbergWavelab8;
202 if (hostFilename.containsIgnoreCase ("Wavelab")) return SteinbergWavelabGeneric;
203 if (hostFilename.containsIgnoreCase ("WaveBurner")) return WaveBurner;
204 if (hostPath.containsIgnoreCase ("Digital Performer")) return DigitalPerformer;
205 if (hostFilename.containsIgnoreCase ("reaper")) return Reaper;
206 if (hostFilename.containsIgnoreCase ("Reason")) return Reason;
207 if (hostPath.containsIgnoreCase ("Studio One")) return StudioOne;
208 if (hostFilename.startsWithIgnoreCase ("Waveform")) return TracktionWaveform;
209 if (hostPath.containsIgnoreCase ("Tracktion 3")) return Tracktion3;
210 if (hostFilename.containsIgnoreCase ("Tracktion")) return TracktionGeneric;
211 if (hostFilename.containsIgnoreCase ("Renoise")) return Renoise;
212 if (hostFilename.containsIgnoreCase ("Resolve")) return DaVinciResolve;
213 if (hostFilename.startsWith ("Bitwig")) return BitwigStudio;
214 if (hostFilename.containsIgnoreCase ("OsxFL")) return FruityLoops;
215 if (hostFilename.containsIgnoreCase ("pluginval")) return pluginval;
216 if (hostFilename.containsIgnoreCase ("AudioPluginHost")) return JUCEPluginHost;
217 if (hostFilename.containsIgnoreCase ("Maschine")) return Maschine;
218 if (hostFilename.containsIgnoreCase ("Vienna Ensemble Pro")) return ViennaEnsemblePro;
219 if (hostFilename.containsIgnoreCase ("auvaltool")) return AUVal;
220 if (hostFilename.containsIgnoreCase ("com.apple.audio.infohelper")) return AppleInfoHelper;
221
222 if (hostIdReportedByWrapper == "com.apple.logic.pro") return AppleLogic;
223 if (hostIdReportedByWrapper == "com.apple.garageband") return AppleGarageBand;
224 if (hostIdReportedByWrapper == "com.apple.mainstage") return AppleMainStage;
225
227
228 const auto matchesInOrder = [&] (const StringArray& strings)
229 {
230 return procName.matchesWildcard ("AUHostingService*(" + strings.joinIntoString ("*") + ")", false);
231 };
232
233 // Depending on localization settings, spaces are not always plain ascii spaces
234 if (matchesInOrder ({ "Logic", "Pro" })) return AppleLogic;
235 if (matchesInOrder ({ "GarageBand" })) return AppleGarageBand;
236 if (matchesInOrder ({ "MainStage" })) return AppleMainStage;
237 if (matchesInOrder ({ "Final", "Cut", "Pro" })) return FinalCut;
238
239 #elif JUCE_WINDOWS
240 if (hostFilename.containsIgnoreCase ("Live 6")) return AbletonLive6;
241 if (hostFilename.containsIgnoreCase ("Live 7")) return AbletonLive7;
242 if (hostFilename.containsIgnoreCase ("Live 8")) return AbletonLive8;
243 if (hostFilename.containsIgnoreCase ("Live 9")) return AbletonLive9;
244 if (hostFilename.containsIgnoreCase ("Live 10")) return AbletonLive10;
245 if (hostFilename.containsIgnoreCase ("Live 11")) return AbletonLive11;
246 if (hostFilename.containsIgnoreCase ("Live ")) return AbletonLiveGeneric;
247 if (hostFilename.containsIgnoreCase ("Audition")) return AdobeAudition;
248 if (hostFilename.containsIgnoreCase ("Adobe Premiere")) return AdobePremierePro;
249 if (hostFilename.containsIgnoreCase ("ProTools")) return AvidProTools;
250 if (hostPath.containsIgnoreCase ("SONAR 8")) return CakewalkSonar8;
251 if (hostFilename.containsIgnoreCase ("SONAR")) return CakewalkSonarGeneric;
252 if (hostFilename.containsIgnoreCase ("Cakewalk.exe")) return CakewalkByBandlab;
253 if (hostFilename.containsIgnoreCase ("GarageBand")) return AppleGarageBand;
254 if (hostFilename.containsIgnoreCase ("Logic")) return AppleLogic;
255 if (hostFilename.containsIgnoreCase ("MainStage")) return AppleMainStage;
256 if (hostFilename.startsWithIgnoreCase ("Waveform")) return TracktionWaveform;
257 if (hostPath.containsIgnoreCase ("Tracktion 3")) return Tracktion3;
258 if (hostFilename.containsIgnoreCase ("Tracktion")) return TracktionGeneric;
259 if (hostFilename.containsIgnoreCase ("reaper")) return Reaper;
260 if (hostFilename.containsIgnoreCase ("Cubase4")) return SteinbergCubase4;
261 if (hostFilename.containsIgnoreCase ("Cubase5")) return SteinbergCubase5;
262 if (hostFilename.containsIgnoreCase ("Cubase6")) return SteinbergCubase6;
263 if (hostFilename.containsIgnoreCase ("Cubase7")) return SteinbergCubase7;
264 if (hostFilename.containsIgnoreCase ("Cubase8.exe")) return SteinbergCubase8;
265 if (hostFilename.containsIgnoreCase ("Cubase8.5.exe")) return SteinbergCubase8_5;
266 // Later version of Cubase scan plug-ins with a separate executable "vst2xscanner"
267 if (hostFilename.containsIgnoreCase ("Cubase9.5.exe")
268 || hostPath.containsIgnoreCase ("Cubase 9.5")) return SteinbergCubase9_5;
269 if (hostFilename.containsIgnoreCase ("Cubase9.exe")
270 || hostPath.containsIgnoreCase ("Cubase 9")) return SteinbergCubase9;
271 if (hostFilename.containsIgnoreCase ("Cubase10.5.exe")
272 || hostPath.containsIgnoreCase ("Cubase 10.5")) return SteinbergCubase10_5;
273 if (hostFilename.containsIgnoreCase ("Cubase10.exe")
274 || hostPath.containsIgnoreCase ("Cubase 10")) return SteinbergCubase10;
275 if (hostFilename.containsIgnoreCase ("Cubase")) return SteinbergCubaseGeneric;
276 if (hostFilename.containsIgnoreCase ("VSTBridgeApp")) return SteinbergCubase5Bridged;
277 if (hostPath.containsIgnoreCase ("Wavelab 5")) return SteinbergWavelab5;
278 if (hostPath.containsIgnoreCase ("Wavelab 6")) return SteinbergWavelab6;
279 if (hostPath.containsIgnoreCase ("Wavelab 7")) return SteinbergWavelab7;
280 if (hostPath.containsIgnoreCase ("Wavelab 8")) return SteinbergWavelab8;
281 if (hostPath.containsIgnoreCase ("Nuendo")) return SteinbergNuendoGeneric;
282 if (hostFilename.containsIgnoreCase ("Wavelab")) return SteinbergWavelabGeneric;
283 if (hostFilename.containsIgnoreCase ("TestHost")) return SteinbergTestHost;
284 if (hostFilename.containsIgnoreCase ("rm-host")) return MuseReceptorGeneric;
285 if (hostFilename.containsIgnoreCase ("Maschine")) return Maschine;
286 if (hostFilename.startsWith ("FL")) return FruityLoops;
287 if (hostFilename.contains ("ilbridge.")) return FruityLoops;
288 if (hostPath.containsIgnoreCase ("Studio One")) return StudioOne;
289 if (hostPath.containsIgnoreCase ("Digital Performer")) return DigitalPerformer;
290 if (hostFilename.containsIgnoreCase ("VST_Scanner")) return VBVSTScanner;
291 if (hostPath.containsIgnoreCase ("Merging Technologies")) return MergingPyramix;
292 if (hostFilename.startsWithIgnoreCase ("Sam")) return MagixSamplitude;
293 if (hostFilename.startsWithIgnoreCase ("Sequoia")) return MagixSequoia;
294 if (hostFilename.containsIgnoreCase ("Reason")) return Reason;
295 if (hostFilename.containsIgnoreCase ("Renoise")) return Renoise;
296 if (hostFilename.containsIgnoreCase ("Resolve")) return DaVinciResolve;
297 if (hostPath.containsIgnoreCase ("Bitwig Studio")) return BitwigStudio;
298 if (hostFilename.containsIgnoreCase ("Sadie")) return SADiE;
299 if (hostFilename.containsIgnoreCase ("pluginval")) return pluginval;
300 if (hostFilename.containsIgnoreCase ("AudioPluginHost")) return JUCEPluginHost;
301 if (hostFilename.containsIgnoreCase ("Vienna Ensemble Pro")) return ViennaEnsemblePro;
302
303 #elif JUCE_LINUX || JUCE_BSD
304 if (hostFilename.containsIgnoreCase ("Ardour")) return Ardour;
305 if (hostFilename.startsWithIgnoreCase ("Waveform")) return TracktionWaveform;
306 if (hostFilename.containsIgnoreCase ("Tracktion")) return TracktionGeneric;
307 if (hostFilename.startsWith ("Bitwig")) return BitwigStudio;
308 if (hostFilename.containsIgnoreCase ("pluginval")) return pluginval;
309 if (hostFilename.containsIgnoreCase ("AudioPluginHost")) return JUCEPluginHost;
310
311 #elif JUCE_IOS
312 #elif JUCE_ANDROID
313 #else
314 #error
315 #endif
316 return UnknownHost;
317}
318
319} // namespace juce
Base class for audio processing classes or plugins.
WrapperType
Flags to indicate the type of plugin context in which a processor is being used.
Represents a local file or directory.
Definition juce_File.h:45
String getFileName() const
Returns the last section of the pathname.
Holds a fixed-size bitmap.
Definition juce_Image.h:58
static AudioProcessor::WrapperType getPluginLoadedAs() noexcept
Returns the plug-in format via which the plug-in file was loaded.
HostType
Represents the host type and also its version for some hosts.
@ SteinbergWavelab5
Represents Steinberg Wavelab 5.
@ MagixSequoia
Represents Magix Sequoia.
@ CakewalkSonar8
Represents Cakewalk Sonar 8.
@ CakewalkByBandlab
Represents Cakewalk by Bandlab.
@ StudioOne
Represents PreSonus Studio One.
@ SteinbergNuendoGeneric
Represents Steinberg Nuendo.
@ MagixSamplitude
Represents Magix Samplitude.
@ AbletonLive9
Represents Ableton Live 9.
@ SteinbergNuendo3
Represents Steinberg Nuendo 3.
@ MergingPyramix
Represents Merging Pyramix.
@ SADiE
Represents SADiE.
@ Reaper
Represents Cockos Reaper.
@ SteinbergCubase8_5
Represents Steinberg Cubase 8.5.
@ AdobeAudition
Represents Adobe Audition.
@ AdobePremierePro
Represents Adobe Premiere Pro.
@ AppleInfoHelper
Represents Apple com.apple.audio.InfoHelper.
@ SteinbergWavelabGeneric
Represents Steinberg Wavelab.
@ SteinbergCubase8
Represents Steinberg Cubase 8.
@ SteinbergWavelab6
Represents Steinberg Wavelab 6.
@ TracktionGeneric
Represents Tracktion.
@ SteinbergCubaseGeneric
Represents Steinberg Cubase.
@ SteinbergCubase6
Represents Steinberg Cubase 6.
@ AppleMainStage
Represents Apple Main Stage.
@ AbletonLive7
Represents Ableton Live 7.
@ Tracktion3
Represents Tracktion 3.
@ AppleGarageBand
Represents Apple GarageBand.
@ SteinbergCubase5
Represents Steinberg Cubase 5.
@ AbletonLive10
Represents Ableton Live 10.
@ MuseReceptorGeneric
Represents Muse Receptor.
@ VBVSTScanner
Represents VB Audio VST Scanner.
@ UnknownHost
Represents an unknown host.
@ SteinbergNuendo5
Represents Steinberg Nuendo 5.
@ SteinbergCubase7
Represents Steinberg Cubase 7.
@ SteinbergCubase9
Represents Steinberg Cubase 9.
@ FinalCut
Represents Apple Final Cut Pro.
@ AppleLogic
Represents Apple Logic Pro.
@ AbletonLiveGeneric
Represents Ableton Live.
@ SteinbergCubase5Bridged
Represents Steinberg Cubase 5 Bridged.
@ SteinbergCubase9_5
Represents Steinberg Cubase 9.5.
@ DaVinciResolve
Represents DaVinci Resolve.
@ FruityLoops
Represents Fruity Loops.
@ SteinbergCubase4
Represents Steinberg Cubase 4.
@ SteinbergCubase10
Represents Steinberg Cubase 10.
@ SteinbergWavelab8
Represents Steinberg Wavelab 8.
@ TracktionWaveform
Represents Tracktion Waveform.
@ AUVal
Represents Apple AU validator.
@ SteinbergCubase10_5
Represents Steinberg Cubase 10.5.
@ CakewalkSonarGeneric
Represents Cakewalk Sonar.
@ Ardour
Represents Ardour.
@ BitwigStudio
Represents Bitwig Studio.
@ DigitalPerformer
Represents Digital Performer.
@ SteinbergNuendo4
Represents Steinberg Nuendo 4.
@ AbletonLive8
Represents Ableton Live 8.
@ AvidProTools
Represents Avid Pro Tools.
@ Renoise
Represents Renoise.
@ JUCEPluginHost
Represents the JUCE AudioPluginHost.
@ SteinbergTestHost
Represents Steinberg's VST3 Test Host.
@ WaveBurner
Represents Apple WaveBurner.
@ AbletonLive11
Represents Ableton Live 11.
@ AbletonLive6
Represents Ableton Live 6.
@ ViennaEnsemblePro
Represents Vienna Ensemble Pro.
@ pluginval
Represents pluginval.
@ Reason
Represents Reason.
@ AULab
Represents AU Lab.
@ Maschine
Represents Native Instruments Maschine.
@ SteinbergWavelab7
Represents Steinberg Wavelab 7.
Image getHostIcon(int size) const
Gets the host app's icon when Inter-App Audio is used on iOS.
const char * getHostDescription() const noexcept
Returns a human-readable description of the host.
void switchToHostApplication() const
Switches to the host application when Inter-App Audio is used on iOS.
bool isInterAppAudioConnected() const
Returns true if the plugin is connected with Inter-App Audio on iOS.
static bool isInAAXAudioSuite(AudioProcessor &)
Returns true if the AudioProcessor instance is an AAX plug-in running in AudioSuite.
static String getHostPath()
Returns the complete absolute path of the host application executable.
A special array for holding a list of strings.
The JUCE String class!
Definition juce_String.h:53
#define JUCE_CALLTYPE
This macro defines the C calling convention used as the standard for JUCE calls.
JUCE Namespace.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...
Definition juce_Memory.h:88