Carla Backend
Loading...
Searching...
No Matches
CarlaPlugin.hpp
Go to the documentation of this file.
1/*
2 * Carla Plugin Host
3 * Copyright (C) 2011-2022 Filipe Coelho <falktx@falktx.com>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of
8 * the License, or any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * For a full copy of the GNU General Public License see the doc/GPL.txt file.
16 */
17
18#ifndef CARLA_PLUGIN_HPP_INCLUDED
19#define CARLA_PLUGIN_HPP_INCLUDED
20
21#include "CarlaBackend.h"
22#include "CarlaPluginPtr.hpp"
23
24// -----------------------------------------------------------------------
25// Avoid including extra libs here
26
27typedef struct _NativePluginDescriptor NativePluginDescriptor;
28struct LADSPA_RDF_Descriptor;
29
30// -----------------------------------------------------------------------
31
32CARLA_BACKEND_START_NAMESPACE
33
34#if 0
35} /* Fix editor indentation */
36#endif
37
38// -----------------------------------------------------------------------
39
46
51class CarlaEngineBridge;
52struct CarlaStateSave;
53struct EngineEvent;
54
55// -----------------------------------------------------------------------
56
66class CARLA_API CarlaPlugin
67{
68protected:
75 CarlaPlugin(CarlaEngine* engine, uint id);
76
77public:
81 virtual ~CarlaPlugin();
82
83 // -------------------------------------------------------------------
84 // Information (base)
85
96 virtual PluginType getType() const noexcept = 0;
97
103 uint getId() const noexcept;
104
110 uint getHints() const noexcept;
111
118
125 bool isEnabled() const noexcept;
126
133 const char* getName() const noexcept;
134
139 const char* getFilename() const noexcept;
140
144 const char* getIconName() const noexcept;
145
150
155 virtual int64_t getUniqueId() const noexcept;
156
160 virtual uint32_t getLatencyInFrames() const noexcept;
161
162 // -------------------------------------------------------------------
163 // Information (count)
164
168 uint32_t getAudioInCount() const noexcept;
169
173 uint32_t getAudioOutCount() const noexcept;
174
178 uint32_t getCVInCount() const noexcept;
179
183 uint32_t getCVOutCount() const noexcept;
184
188 virtual uint32_t getMidiInCount() const noexcept;
189
193 virtual uint32_t getMidiOutCount() const noexcept;
194
199 uint32_t getParameterCount() const noexcept;
200
204 virtual uint32_t getParameterScalePointCount(uint32_t parameterId) const noexcept;
205
209 uint32_t getProgramCount() const noexcept;
210
215
219 uint32_t getCustomDataCount() const noexcept;
220
221 // -------------------------------------------------------------------
222 // Information (current data)
223
230
238
242 virtual uint getAudioPortHints(bool isOutput, uint32_t portIndex) const noexcept;
243
247 const ParameterData& getParameterData(uint32_t parameterId) const noexcept;
248
252 const ParameterRanges& getParameterRanges(uint32_t parameterId) const noexcept;
253
257 bool isParameterOutput(uint32_t parameterId) const noexcept;
258
264 const MidiProgramData& getMidiProgramData(uint32_t index) const noexcept;
265
271 const CustomData& getCustomData(uint32_t index) const noexcept;
272
281 virtual std::size_t getChunkData(void** dataPtr) noexcept;
282
283 // -------------------------------------------------------------------
284 // Information (per-plugin data)
285
291 virtual uint getOptionsAvailable() const noexcept;
292
296 virtual float getParameterValue(uint32_t parameterId) const noexcept;
297
301 virtual float getParameterScalePointValue(uint32_t parameterId, uint32_t scalePointId) const noexcept;
302
306 __attribute__((warn_unused_result))
307 virtual bool getLabel(char* strBuf) const noexcept;
308
312 __attribute__((warn_unused_result))
313 virtual bool getMaker(char* strBuf) const noexcept;
314
318 __attribute__((warn_unused_result))
319 virtual bool getCopyright(char* strBuf) const noexcept;
320
326 __attribute__((warn_unused_result))
327 virtual bool getRealName(char* strBuf) const noexcept;
328
332 __attribute__((warn_unused_result))
333 virtual bool getParameterName(uint32_t parameterId, char* strBuf) const noexcept;
334
338 __attribute__((warn_unused_result))
339 virtual bool getParameterSymbol(uint32_t parameterId, char* strBuf) const noexcept;
340
345 __attribute__((warn_unused_result))
346 virtual bool getParameterText(uint32_t parameterId, char* strBuf) noexcept;
347
351 __attribute__((warn_unused_result))
352 virtual bool getParameterUnit(uint32_t parameterId, char* strBuf) const noexcept;
353
357 __attribute__((warn_unused_result))
358 virtual bool getParameterComment(uint32_t parameterId, char* strBuf) const noexcept;
359
364 __attribute__((warn_unused_result))
365 virtual bool getParameterGroupName(uint32_t parameterId, char* strBuf) const noexcept;
366
370 __attribute__((warn_unused_result))
371 virtual bool getParameterScalePointLabel(uint32_t parameterId, uint32_t scalePointId, char* strBuf) const noexcept;
372
378 float getInternalParameterValue(int32_t parameterId) const noexcept;
379
383 __attribute__((warn_unused_result))
384 bool getProgramName(uint32_t index, char* strBuf) const noexcept;
385
391 __attribute__((warn_unused_result))
392 bool getMidiProgramName(uint32_t index, char* strBuf) const noexcept;
393
402 void getParameterCountInfo(uint32_t& ins, uint32_t& outs) const noexcept;
403
404 // -------------------------------------------------------------------
405 // Set data (state)
406
412 virtual void prepareForSave(bool temporary);
413
417 virtual void resetParameters() noexcept;
418
423
430 const CarlaStateSave& getStateSave(bool callPrepareForSave = true);
431
437 void loadStateSave(const CarlaStateSave& stateSave);
438
444 bool saveStateToFile(const char* filename);
445
451 bool loadStateFromFile(const char* filename);
452
456 bool exportAsLV2(const char* lv2path);
457
458 // -------------------------------------------------------------------
459 // Set data (internal stuff)
460
467 virtual void setId(uint newId) noexcept;
468
474 virtual void setName(const char* newName);
475
481 virtual void setOption(uint option, bool yesNo, bool sendCallback);
482
489 void setEnabled(bool yesNo) noexcept;
490
497 void setActive(bool active, bool sendOsc, bool sendCallback) noexcept;
498
499#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
507 void setDryWet(float value, bool sendOsc, bool sendCallback) noexcept;
508
516 void setVolume(float value, bool sendOsc, bool sendCallback) noexcept;
517
527 void setBalanceLeft(float value, bool sendOsc, bool sendCallback) noexcept;
528
538 void setBalanceRight(float value, bool sendOsc, bool sendCallback) noexcept;
539
549 void setPanning(float value, bool sendOsc, bool sendCallback) noexcept;
550
554 void setDryWetRT(float value, bool sendCallbackLater) noexcept;
555 void setVolumeRT(float value, bool sendCallbackLater) noexcept;
556 void setBalanceLeftRT(float value, bool sendCallbackLater) noexcept;
557 void setBalanceRightRT(float value, bool sendCallbackLater) noexcept;
558 void setPanningRT(float value, bool sendCallbackLater) noexcept;
559#endif // ! BUILD_BRIDGE_ALTERNATIVE_ARCH
560
567 virtual void setCtrlChannel(int8_t channel, bool sendOsc, bool sendCallback) noexcept;
568
569 // -------------------------------------------------------------------
570 // Set data (plugin-specific stuff)
571
583 virtual void setParameterValue(uint32_t parameterId, float value, bool sendGui, bool sendOsc, bool sendCallback) noexcept;
584
588 virtual void setParameterValueRT(uint32_t parameterId, float value, uint32_t frameOffset, bool sendCallbackLater) noexcept;
589
601 void setParameterValueByRealIndex(int32_t rindex, float value, bool sendGui, bool sendOsc, bool sendCallback) noexcept;
602
607 virtual void setParameterMidiChannel(uint32_t parameterId, uint8_t channel, bool sendOsc, bool sendCallback) noexcept;
608
613 virtual void setParameterMappedControlIndex(uint32_t parameterId, int16_t index,
614 bool sendOsc, bool sendCallback, bool reconfigureNow) noexcept;
615
619 virtual void setParameterMappedRange(uint32_t parameterId, float minimum, float maximum,
620 bool sendOsc, bool sendCallback) noexcept;
621
633 virtual void setCustomData(const char* type, const char* key, const char* value, bool sendGui);
634
642 virtual void setChunkData(const void* data, std::size_t dataSize);
643
655 virtual void setProgram(int32_t index, bool sendGui, bool sendOsc, bool sendCallback, bool doingInit = false) noexcept;
656
668 virtual void setMidiProgram(int32_t index, bool sendGui, bool sendOsc, bool sendCallback, bool doingInit = false) noexcept;
669
674 void setMidiProgramById(uint32_t bank, uint32_t program, bool sendGui, bool sendOsc, bool sendCallback) noexcept;
675
679 virtual void setProgramRT(uint32_t index, bool sendCallbackLater) noexcept;
680 virtual void setMidiProgramRT(uint32_t index, bool sendCallbackLater) noexcept;
681
682 // -------------------------------------------------------------------
683 // Plugin state
684
689 virtual void reload() = 0;
690
694 virtual void reloadPrograms(bool doInit);
695
696 // -------------------------------------------------------------------
697 // Plugin processing
698
699protected:
703 virtual void activate() noexcept;
704
708 virtual void deactivate() noexcept;
709
710public:
714 virtual void process(const float* const* audioIn, float** audioOut,
715 const float* const* cvIn, float** cvOut, uint32_t frames) = 0;
716
720 virtual void bufferSizeChanged(uint32_t newBufferSize);
721
725 virtual void sampleRateChanged(double newSampleRate);
726
730 virtual void offlineModeChanged(bool isOffline);
731
732 // -------------------------------------------------------------------
733 // Misc
734
739 virtual void idle();
740
745 bool tryLock(bool forcedOffline) noexcept;
746
751
752 // -------------------------------------------------------------------
753 // Plugin buffers
754
758 virtual void initBuffers() const noexcept;
759
763 virtual void clearBuffers() noexcept;
764
765 // -------------------------------------------------------------------
766 // OSC stuff
767
772 virtual void handleOscMessage(const char* method,
773 int argc,
774 const void* argv,
775 const char* types,
776 void* msg);
777
778 // -------------------------------------------------------------------
779 // MIDI events
780
786 void sendMidiSingleNote(uint8_t channel, uint8_t note, uint8_t velo,
787 bool sendGui, bool sendOsc, bool sendCallback);
788
789#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
796#endif
797
798 // -------------------------------------------------------------------
799 // UI Stuff
800
804 virtual void setCustomUITitle(const char* title) noexcept;
805
810 virtual void showCustomUI(bool yesNo);
811
817 virtual void* embedCustomUI(void* ptr);
818
824 virtual void uiIdle();
825
830 virtual void uiParameterChange(uint32_t index, float value) noexcept;
831
836 virtual void uiProgramChange(uint32_t index) noexcept;
837
842 virtual void uiMidiProgramChange(uint32_t index) noexcept;
843
848 virtual void uiNoteOn(uint8_t channel, uint8_t note, uint8_t velo) noexcept;
849
854 virtual void uiNoteOff(uint8_t channel, uint8_t note) noexcept;
855
856 // -------------------------------------------------------------------
857 // Helper functions
858
863
868
873
878
882 CarlaEngineCVPort* getCVInPort(uint32_t index) const noexcept;
883
888
893
898
899#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
904 void checkForMidiLearn(EngineEvent& event) noexcept;
905#endif
906
911 virtual void* getNativeHandle() const noexcept;
912
917 virtual const void* getNativeDescriptor() const noexcept;
918
922 virtual uintptr_t getUiBridgeProcessId() const noexcept;
923
924 // -------------------------------------------------------------------
925
930 uint32_t getPatchbayNodeId() const noexcept;
931
936 void setPatchbayNodeId(uint32_t nodeId) noexcept;
937
938 // -------------------------------------------------------------------
939 // Plugin initializers
940
946 {
947 return BINARY_NATIVE;
948 }
949
953 virtual const void* getExtraStuff() const noexcept
954 {
955 return nullptr;
956 }
957
958#ifndef DOXYGEN
959 struct Initializer {
960 CarlaEngine* const engine;
961 const uint id;
962 const char* const filename;
963 const char* const name;
964 const char* const label;
965 const int64_t uniqueId;
966 const uint options; // see PluginOptions
967 };
968
969 static CarlaPluginPtr newNative(const Initializer& init);
970 static CarlaPluginPtr newBridge(const Initializer& init,
971 BinaryType btype, PluginType ptype,
972 const char* binaryArchName, const char* bridgeBinary);
973
974 static CarlaPluginPtr newLADSPA(const Initializer& init, const LADSPA_RDF_Descriptor* rdfDescriptor);
975 static CarlaPluginPtr newDSSI(const Initializer& init);
976 static CarlaPluginPtr newLV2(const Initializer& init);
977 static CarlaPluginPtr newVST2(const Initializer& init);
978 static CarlaPluginPtr newVST3(const Initializer& init);
979 static CarlaPluginPtr newAU(const Initializer& init);
980 static CarlaPluginPtr newJSFX(const Initializer& init);
981
982 static CarlaPluginPtr newJuce(const Initializer& init, const char* format);
983 static CarlaPluginPtr newFluidSynth(const Initializer& init, PluginType ptype, bool use16Outs);
984 static CarlaPluginPtr newSFZero(const Initializer& init);
985
986 static CarlaPluginPtr newJackApp(const Initializer& init);
987#endif
988
989 // -------------------------------------------------------------------
990
991protected:
995 struct ProtectedData;
996 ProtectedData* const pData;
997
998 // -------------------------------------------------------------------
999 // Internal helper functions
1000
1001protected:
1005 virtual void cloneLV2Files(const CarlaPlugin& other);
1006
1012 virtual void restoreLV2State(bool temporary) noexcept;
1013
1018
1023
1024 // -------------------------------------------------------------------
1025 // Helper classes
1026
1032 {
1033 public:
1034 ScopedDisabler(CarlaPlugin* plugin) noexcept;
1036
1037 private:
1038 CarlaPlugin* const fPlugin;
1039 bool fWasEnabled;
1040
1041 CARLA_PREVENT_HEAP_ALLOCATION
1042 CARLA_DECLARE_NON_COPYABLE(ScopedDisabler)
1043 };
1044
1051 {
1052 public:
1053 ScopedSingleProcessLocker(CarlaPlugin* plugin, bool block) noexcept;
1055
1056 private:
1057 CarlaPlugin* const fPlugin;
1058 const bool fBlock;
1059
1060 CARLA_PREVENT_HEAP_ALLOCATION
1061 CARLA_DECLARE_NON_COPYABLE(ScopedSingleProcessLocker)
1062 };
1063
1064 friend class CarlaEngine;
1065 friend class CarlaEngineBridge;
1066 CARLA_DECLARE_NON_COPYABLE(CarlaPlugin)
1067};
1068
1070
1071// -----------------------------------------------------------------------
1072
1073CARLA_BACKEND_END_NAMESPACE
1074
1075#endif // CARLA_PLUGIN_HPP_INCLUDED
CARLA_BACKEND_START_NAMESPACE typedef std::shared_ptr< CarlaPlugin > CarlaPluginPtr
Definition CarlaPluginPtr.hpp:267
struct _NativePluginDescriptor NativePluginDescriptor
Definition CarlaPlugin.hpp:27
Definition CarlaEngine.hpp:442
Definition CarlaEngine.hpp:489
Definition CarlaEngine.hpp:645
Definition CarlaEngine.hpp:702
Definition CarlaEngine.hpp:551
Definition CarlaEngine.hpp:814
ScopedDisabler(CarlaPlugin *plugin) noexcept
ScopedSingleProcessLocker(CarlaPlugin *plugin, bool block) noexcept
virtual void deactivate() noexcept
virtual void reload()=0
virtual void * embedCustomUI(void *ptr)
CarlaEngineAudioPort * getAudioInPort(uint32_t index) const noexcept
float getInternalParameterValue(int32_t parameterId) const noexcept
uint32_t getProgramCount() const noexcept
virtual const void * getNativeDescriptor() const noexcept
virtual void cloneLV2Files(const CarlaPlugin &other)
char *strBuf const noexcept
Definition CarlaPlugin.hpp:333
virtual void uiIdle()
void setVolume(float value, bool sendOsc, bool sendCallback) noexcept
virtual PluginCategory getCategory() const noexcept
bool exportAsLV2(const char *lv2path)
CarlaEngineAudioPort * getAudioOutPort(uint32_t index) const noexcept
uint32_t getAudioOutCount() const noexcept
virtual void process(const float *const *audioIn, float **audioOut, const float *const *cvIn, float **cvOut, uint32_t frames)=0
virtual void showCustomUI(bool yesNo)
void setDryWetRT(float value, bool sendCallbackLater) noexcept
int32_t getCurrentMidiProgram() const noexcept
virtual uint32_t getMidiInCount() const noexcept
virtual uint32_t getLatencyInFrames() const noexcept
virtual void setParameterMappedRange(uint32_t parameterId, float minimum, float maximum, bool sendOsc, bool sendCallback) noexcept
void setEnabled(bool yesNo) noexcept
virtual void setParameterValue(uint32_t parameterId, float value, bool sendGui, bool sendOsc, bool sendCallback) noexcept
void getParameterCountInfo(uint32_t &ins, uint32_t &outs) const noexcept
void setActive(bool active, bool sendOsc, bool sendCallback) noexcept
virtual void bufferSizeChanged(uint32_t newBufferSize)
virtual void setParameterValueRT(uint32_t parameterId, float value, uint32_t frameOffset, bool sendCallbackLater) noexcept
virtual void setMidiProgramRT(uint32_t index, bool sendCallbackLater) noexcept
void unlock() noexcept
ProtectedData *const pData
Definition CarlaPlugin.hpp:996
void setBalanceLeftRT(float value, bool sendCallbackLater) noexcept
const CustomData & getCustomData(uint32_t index) const noexcept
void setMidiProgramById(uint32_t bank, uint32_t program, bool sendGui, bool sendOsc, bool sendCallback) noexcept
virtual float getParameterValue(uint32_t parameterId) const noexcept
virtual void setId(uint newId) noexcept
CarlaPlugin(CarlaEngine *engine, uint id)
CarlaEngineClient * getEngineClient() const noexcept
virtual void uiMidiProgramChange(uint32_t index) noexcept
void setBalanceRight(float value, bool sendOsc, bool sendCallback) noexcept
virtual void offlineModeChanged(bool isOffline)
uint32_t getCVOutCount() const noexcept
virtual void clearBuffers() noexcept
void setVolumeRT(float value, bool sendCallbackLater) noexcept
virtual void setMidiProgram(int32_t index, bool sendGui, bool sendOsc, bool sendCallback, bool doingInit=false) noexcept
bool saveStateToFile(const char *filename)
void setBalanceRightRT(float value, bool sendCallbackLater) noexcept
virtual void initBuffers() const noexcept
const char * getName() const noexcept
virtual void uiProgramChange(uint32_t index) noexcept
uint32_t getAudioInCount() const noexcept
CarlaEngineEventPort * getDefaultEventOutPort() const noexcept
friend class CarlaEngineBridge
Definition CarlaPlugin.hpp:1065
void checkForMidiLearn(EngineEvent &event) noexcept
virtual void setParameterMidiChannel(uint32_t parameterId, uint8_t channel, bool sendOsc, bool sendCallback) noexcept
uint getId() const noexcept
CarlaEngine * getEngine() const noexcept
void setPatchbayNodeId(uint32_t nodeId) noexcept
uint32_t getParameterCount() const noexcept
virtual void uiNoteOff(uint8_t channel, uint8_t note) noexcept
void setPanningRT(float value, bool sendCallbackLater) noexcept
virtual void setCustomData(const char *type, const char *key, const char *value, bool sendGui)
uint32_t getCVInCount() const noexcept
CarlaEngineCVPort * getCVInPort(uint32_t index) const noexcept
const ParameterData & getParameterData(uint32_t parameterId) const noexcept
void sendMidiSingleNote(uint8_t channel, uint8_t note, uint8_t velo, bool sendGui, bool sendOsc, bool sendCallback)
virtual void prepareForSave(bool temporary)
bool tryLock(bool forcedOffline) noexcept
virtual void randomizeParameters() noexcept
virtual void setProgram(int32_t index, bool sendGui, bool sendOsc, bool sendCallback, bool doingInit=false) noexcept
bool loadStateFromFile(const char *filename)
virtual uintptr_t getUiBridgeProcessId() const noexcept
virtual void * getNativeHandle() const noexcept
virtual void setName(const char *newName)
const char * getFilename() const noexcept
bool isParameterOutput(uint32_t parameterId) const noexcept
uint getOptionsEnabled() const noexcept
void setParameterValueByRealIndex(int32_t rindex, float value, bool sendGui, bool sendOsc, bool sendCallback) noexcept
CarlaEngineCVPort * getCVOutPort(uint32_t index) const noexcept
virtual void restoreLV2State(bool temporary) noexcept
virtual uint getOptionsAvailable() const noexcept
const MidiProgramData & getMidiProgramData(uint32_t index) const noexcept
virtual void idle()
virtual int64_t getUniqueId() const noexcept
const ParameterRanges & getParameterRanges(uint32_t parameterId) const noexcept
const char * getIconName() const noexcept
virtual void setOption(uint option, bool yesNo, bool sendCallback)
uint32_t scalePointId
Definition CarlaPlugin.hpp:371
virtual void uiParameterChange(uint32_t index, float value) noexcept
virtual BinaryType getBinaryType() const noexcept
Definition CarlaPlugin.hpp:945
void setPanning(float value, bool sendOsc, bool sendCallback) noexcept
virtual void waitForBridgeSaveSignal() noexcept
friend class CarlaEngine
Definition CarlaPlugin.hpp:1064
CarlaEngineEventPort * getDefaultEventInPort() const noexcept
virtual void setProgramRT(uint32_t index, bool sendCallbackLater) noexcept
uint32_t getMidiProgramCount() const noexcept
virtual const void * getExtraStuff() const noexcept
Definition CarlaPlugin.hpp:953
void setBalanceLeft(float value, bool sendOsc, bool sendCallback) noexcept
virtual void setParameterMappedControlIndex(uint32_t parameterId, int16_t index, bool sendOsc, bool sendCallback, bool reconfigureNow) noexcept
virtual uint getAudioPortHints(bool isOutput, uint32_t portIndex) const noexcept
void loadStateSave(const CarlaStateSave &stateSave)
virtual uint32_t getParameterScalePointCount(uint32_t parameterId) const noexcept
virtual void setCtrlChannel(int8_t channel, bool sendOsc, bool sendCallback) noexcept
const CarlaStateSave & getStateSave(bool callPrepareForSave=true)
void setDryWet(float value, bool sendOsc, bool sendCallback) noexcept
virtual std::size_t getChunkData(void **dataPtr) noexcept
virtual void setCustomUITitle(const char *title) noexcept
virtual uint32_t getMidiOutCount() const noexcept
virtual float getParameterScalePointValue(uint32_t parameterId, uint32_t scalePointId) const noexcept
uint getHints() const noexcept
virtual void resetParameters() noexcept
virtual PluginType getType() const noexcept=0
void postponeRtAllNotesOff()
__attribute__((warn_unused_result)) virtual bool getLabel(char *strBuf) const noexcept
virtual void sampleRateChanged(double newSampleRate)
virtual void handleOscMessage(const char *method, int argc, const void *argv, const char *types, void *msg)
virtual void uiNoteOn(uint8_t channel, uint8_t note, uint8_t velo) noexcept
uint32_t getCustomDataCount() const noexcept
virtual void setChunkData(const void *data, std::size_t dataSize)
virtual ~CarlaPlugin()
virtual void prepareForDeletion() noexcept
int32_t getCurrentProgram() const noexcept
bool isEnabled() const noexcept
uint32_t getPatchbayNodeId() const noexcept
virtual void reloadPrograms(bool doInit)
virtual void activate() noexcept
PluginType
Definition CarlaBackend.h:608
BinaryType
Definition CarlaBackend.h:544
PluginCategory
Definition CarlaBackend.h:689
CarlaEngine * newJuce(AudioApi api)
CarlaEngine * newBridge(const char *audioPoolBaseName, const char *rtClientBaseName, const char *nonRtClientBaseName, const char *nonRtServerBaseName)
Definition CarlaPluginPtr.hpp:33
Definition CarlaBackend.h:1918
Definition CarlaEngine.hpp:216
Definition CarlaBackend.h:1897
Definition CarlaBackend.h:1708
Definition CarlaBackend.h:1763