103 uint getId() const noexcept;
110 uint getHints() const noexcept;
117 uint getOptionsEnabled() const noexcept;
125 bool isEnabled() const noexcept;
133 const
char* getName() const noexcept;
139 const
char* getFilename() const noexcept;
144 const
char* getIconName() const noexcept;
155 virtual int64_t getUniqueId() const noexcept;
160 virtual uint32_t getLatencyInFrames() const noexcept;
168 uint32_t getAudioInCount() const noexcept;
173 uint32_t getAudioOutCount() const noexcept;
178 uint32_t getCVInCount() const noexcept;
183 uint32_t getCVOutCount() const noexcept;
188 virtual uint32_t getMidiInCount() const noexcept;
193 virtual uint32_t getMidiOutCount() const noexcept;
199 uint32_t getParameterCount() const noexcept;
204 virtual uint32_t getParameterScalePointCount(uint32_t parameterId) const noexcept;
209 uint32_t getProgramCount() const noexcept;
214 uint32_t getMidiProgramCount() const noexcept;
219 uint32_t getCustomDataCount() const noexcept;
229 int32_t getCurrentProgram() const noexcept;
237 int32_t getCurrentMidiProgram() const noexcept;
242 virtual uint getAudioPortHints(
bool isOutput, uint32_t portIndex) const noexcept;
257 bool isParameterOutput(uint32_t parameterId) const noexcept;
271 const
CustomData& getCustomData(uint32_t index) const noexcept;
281 virtual
std::
size_t getChunkData(
void** dataPtr) noexcept;
291 virtual uint getOptionsAvailable() const noexcept;
296 virtual
float getParameterValue(uint32_t parameterId) const noexcept;
301 virtual
float getParameterScalePointValue(uint32_t parameterId, uint32_t scalePointId) const noexcept;
306 __attribute__((warn_unused_result))
307 virtual
bool getLabel(
char* strBuf) const noexcept;
312 __attribute__((warn_unused_result))
313 virtual
bool getMaker(
char* strBuf) const noexcept;
318 __attribute__((warn_unused_result))
319 virtual
bool getCopyright(
char* strBuf) const noexcept;
326 __attribute__((warn_unused_result))
327 virtual
bool getRealName(
char* strBuf) const noexcept;
332 __attribute__((warn_unused_result))
333 virtual
bool getParameterName(uint32_t parameterId,
char* strBuf) const noexcept;
338 __attribute__((warn_unused_result))
339 virtual
bool getParameterSymbol(uint32_t parameterId,
char* strBuf) const noexcept;
345 __attribute__((warn_unused_result))
346 virtual
bool getParameterText(uint32_t parameterId,
char* strBuf) noexcept;
351 __attribute__((warn_unused_result))
352 virtual
bool getParameterUnit(uint32_t parameterId,
char* strBuf) const noexcept;
357 __attribute__((warn_unused_result))
358 virtual
bool getParameterComment(uint32_t parameterId,
char* strBuf) const noexcept;
364 __attribute__((warn_unused_result))
365 virtual
bool getParameterGroupName(uint32_t parameterId,
char* strBuf) const noexcept;
370 __attribute__((warn_unused_result))
371 virtual
bool getParameterScalePointLabel(uint32_t parameterId, uint32_t scalePointId,
char* strBuf) const noexcept;
378 float getInternalParameterValue(int32_t parameterId) const noexcept;
383 __attribute__((warn_unused_result))
384 bool getProgramName(uint32_t index,
char* strBuf) const noexcept;
391 __attribute__((warn_unused_result))
392 bool getMidiProgramName(uint32_t index,
char* strBuf) const noexcept;
402 void getParameterCountInfo(uint32_t& ins, uint32_t& outs) const noexcept;
412 virtual
void prepareForSave(
bool temporary);
417 virtual
void resetParameters() noexcept;
422 virtual
void randomizeParameters() noexcept;
430 const CarlaStateSave& getStateSave(
bool callPrepareForSave = true);
437 void loadStateSave(const CarlaStateSave& stateSave);
444 bool saveStateToFile(const
char* filename);
451 bool loadStateFromFile(const
char* filename);
456 bool exportAsLV2(const
char* lv2path);
467 virtual
void setId(uint newId) noexcept;
474 virtual
void setName(const
char* newName);
481 virtual
void setOption(uint option,
bool yesNo,
bool sendCallback);
489 void setEnabled(
bool yesNo) noexcept;
497 void setActive(
bool active,
bool sendOsc,
bool sendCallback) noexcept;
499#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
507 void setDryWet(
float value,
bool sendOsc,
bool sendCallback)
noexcept;
516 void setVolume(
float value,
bool sendOsc,
bool sendCallback)
noexcept;
549 void setPanning(
float value,
bool sendOsc,
bool sendCallback)
noexcept;
567 virtual void setCtrlChannel(int8_t channel,
bool sendOsc,
bool sendCallback)
noexcept;
583 virtual void setParameterValue(uint32_t parameterId,
float value,
bool sendGui,
bool sendOsc,
bool sendCallback)
noexcept;
588 virtual void setParameterValueRT(uint32_t parameterId,
float value, uint32_t frameOffset,
bool sendCallbackLater)
noexcept;
614 bool sendOsc,
bool sendCallback,
bool reconfigureNow)
noexcept;
620 bool sendOsc,
bool sendCallback)
noexcept;
633 virtual void setCustomData(
const char* type,
const char* key,
const char* value,
bool sendGui);
655 virtual void setProgram(int32_t index,
bool sendGui,
bool sendOsc,
bool sendCallback,
bool doingInit =
false) noexcept;
668 virtual
void setMidiProgram(int32_t index,
bool sendGui,
bool sendOsc,
bool sendCallback,
bool doingInit = false) noexcept;
674 void setMidiProgramById(uint32_t bank, uint32_t program,
bool sendGui,
bool sendOsc,
bool sendCallback) noexcept;
679 virtual
void setProgramRT(uint32_t index,
bool sendCallbackLater) noexcept;
680 virtual
void setMidiProgramRT(uint32_t index,
bool sendCallbackLater) noexcept;
689 virtual
void reload() = 0;
694 virtual
void reloadPrograms(
bool doInit);
703 virtual
void activate() noexcept;
708 virtual
void deactivate() noexcept;
714 virtual
void process(const
float* const* audioIn,
float** audioOut,
715 const
float* const* cvIn,
float** cvOut, uint32_t frames) = 0;
720 virtual
void bufferSizeChanged(uint32_t newBufferSize);
725 virtual
void sampleRateChanged(
double newSampleRate);
730 virtual
void offlineModeChanged(
bool isOffline);
745 bool tryLock(
bool forcedOffline) noexcept;
750 void unlock() noexcept;
758 virtual
void initBuffers() const noexcept;
763 virtual
void clearBuffers() noexcept;
772 virtual
void handleOscMessage(const
char* method,
786 void sendMidiSingleNote(uint8_t channel, uint8_t note, uint8_t velo,
787 bool sendGui,
bool sendOsc,
bool sendCallback);
789#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
848 virtual void uiNoteOn(uint8_t channel, uint8_t note, uint8_t velo)
noexcept;
854 virtual void uiNoteOff(uint8_t channel, uint8_t note)
noexcept;
899#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
917 virtual const
void* getNativeDescriptor() const noexcept;
922 virtual uintptr_t getUiBridgeProcessId() const noexcept;
930 uint32_t getPatchbayNodeId() const noexcept;
936 void setPatchbayNodeId(uint32_t nodeId) noexcept;
947 return BINARY_NATIVE;
962 const char*
const filename;
963 const char*
const name;
964 const char*
const label;
965 const int64_t uniqueId;
969 static CarlaPluginPtr newNative(
const Initializer& init);
970 static CarlaPluginPtr
newBridge(
const Initializer& init,
972 const char* binaryArchName,
const char* bridgeBinary);
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);
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);
986 static CarlaPluginPtr newJackApp(
const Initializer& init);
995 struct ProtectedData;
1022 virtual
void waitForBridgeSaveSignal() noexcept;
1041 CARLA_PREVENT_HEAP_ALLOCATION
1060 CARLA_PREVENT_HEAP_ALLOCATION
1065 friend class CarlaEngineBridge;