18#ifndef CARLA_PLUGIN_HPP_INCLUDED
19#define CARLA_PLUGIN_HPP_INCLUDED
29struct LADSPA_RDF_Descriptor;
33CARLA_BACKEND_START_NAMESPACE
52class CarlaEngineBridge;
104 uint getId() const noexcept;
111 uint getHints() const noexcept;
118 uint getOptionsEnabled() const noexcept;
126 bool isEnabled() const noexcept;
134 const
char* getName() const noexcept;
140 const
char* getFilename() const noexcept;
145 const
char* getIconName() const noexcept;
156 virtual int64_t getUniqueId() const noexcept;
161 virtual uint32_t getLatencyInFrames() const noexcept;
169 uint32_t getAudioInCount() const noexcept;
174 uint32_t getAudioOutCount() const noexcept;
179 uint32_t getCVInCount() const noexcept;
184 uint32_t getCVOutCount() const noexcept;
189 virtual uint32_t getMidiInCount() const noexcept;
194 virtual uint32_t getMidiOutCount() const noexcept;
200 uint32_t getParameterCount() const noexcept;
205 virtual uint32_t getParameterScalePointCount(uint32_t parameterId) const noexcept;
210 uint32_t getProgramCount() const noexcept;
215 uint32_t getMidiProgramCount() const noexcept;
220 uint32_t getCustomDataCount() const noexcept;
230 int32_t getCurrentProgram() const noexcept;
238 int32_t getCurrentMidiProgram() const noexcept;
243 virtual uint getAudioPortHints(
bool isOutput, uint32_t portIndex) const noexcept;
258 bool isParameterOutput(uint32_t parameterId) const noexcept;
272 const
CustomData& getCustomData(uint32_t index) const noexcept;
282 virtual
std::
size_t getChunkData(
void** dataPtr) noexcept;
292 virtual uint getOptionsAvailable() const noexcept;
297 virtual
float getParameterValue(uint32_t parameterId) const noexcept;
302 virtual
float getParameterScalePointValue(uint32_t parameterId, uint32_t scalePointId) const noexcept;
307 __attribute__((warn_unused_result))
308 virtual
bool getLabel(
char* strBuf) const noexcept;
313 __attribute__((warn_unused_result))
314 virtual
bool getMaker(
char* strBuf) const noexcept;
319 __attribute__((warn_unused_result))
320 virtual
bool getCopyright(
char* strBuf) const noexcept;
327 __attribute__((warn_unused_result))
328 virtual
bool getRealName(
char* strBuf) const noexcept;
333 __attribute__((warn_unused_result))
334 virtual
bool getParameterName(uint32_t parameterId,
char* strBuf) const noexcept;
339 __attribute__((warn_unused_result))
340 virtual
bool getParameterSymbol(uint32_t parameterId,
char* strBuf) const noexcept;
346 __attribute__((warn_unused_result))
347 virtual
bool getParameterText(uint32_t parameterId,
char* strBuf) noexcept;
352 __attribute__((warn_unused_result))
353 virtual
bool getParameterUnit(uint32_t parameterId,
char* strBuf) const noexcept;
358 __attribute__((warn_unused_result))
359 virtual
bool getParameterComment(uint32_t parameterId,
char* strBuf) const noexcept;
365 __attribute__((warn_unused_result))
366 virtual
bool getParameterGroupName(uint32_t parameterId,
char* strBuf) const noexcept;
371 __attribute__((warn_unused_result))
372 virtual
bool getParameterScalePointLabel(uint32_t parameterId, uint32_t scalePointId,
char* strBuf) const noexcept;
379 float getInternalParameterValue(int32_t parameterId) const noexcept;
384 __attribute__((warn_unused_result))
385 bool getProgramName(uint32_t index,
char* strBuf) const noexcept;
392 __attribute__((warn_unused_result))
393 bool getMidiProgramName(uint32_t index,
char* strBuf) const noexcept;
403 void getParameterCountInfo(uint32_t& ins, uint32_t& outs) const noexcept;
413 virtual
void prepareForSave(
bool temporary);
418 virtual
void resetParameters() noexcept;
423 virtual
void randomizeParameters() noexcept;
431 const CarlaStateSave& getStateSave(
bool callPrepareForSave = true);
438 void loadStateSave(const CarlaStateSave& stateSave);
445 bool saveStateToFile(const
char* filename);
452 bool loadStateFromFile(const
char* filename);
457 bool exportAsLV2(const
char* lv2path);
468 virtual
void setId(uint newId) noexcept;
475 virtual
void setName(const
char* newName);
482 virtual
void setOption(uint option,
bool yesNo,
bool sendCallback);
490 void setEnabled(
bool yesNo) noexcept;
498 void setActive(
bool active,
bool sendOsc,
bool sendCallback) noexcept;
500#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
508 void setDryWet(
float value,
bool sendOsc,
bool sendCallback)
noexcept;
517 void setVolume(
float value,
bool sendOsc,
bool sendCallback)
noexcept;
550 void setPanning(
float value,
bool sendOsc,
bool sendCallback)
noexcept;
568 virtual void setCtrlChannel(int8_t channel,
bool sendOsc,
bool sendCallback)
noexcept;
584 virtual void setParameterValue(uint32_t parameterId,
float value,
bool sendGui,
bool sendOsc,
bool sendCallback)
noexcept;
589 virtual void setParameterValueRT(uint32_t parameterId,
float value, uint32_t frameOffset,
bool sendCallbackLater)
noexcept;
615 bool sendOsc,
bool sendCallback,
bool reconfigureNow)
noexcept;
621 bool sendOsc,
bool sendCallback)
noexcept;
634 virtual void setCustomData(
const char* type,
const char* key,
const char* value,
bool sendGui);
656 virtual void setProgram(int32_t index,
bool sendGui,
bool sendOsc,
bool sendCallback,
bool doingInit =
false) noexcept;
669 virtual
void setMidiProgram(int32_t index,
bool sendGui,
bool sendOsc,
bool sendCallback,
bool doingInit = false) noexcept;
675 void setMidiProgramById(uint32_t bank, uint32_t program,
bool sendGui,
bool sendOsc,
bool sendCallback) noexcept;
680 virtual
void setProgramRT(uint32_t index,
bool sendCallbackLater) noexcept;
681 virtual
void setMidiProgramRT(uint32_t index,
bool sendCallbackLater) noexcept;
690 virtual
void reload() = 0;
695 virtual
void reloadPrograms(
bool doInit);
704 virtual
void activate() noexcept;
709 virtual
void deactivate() noexcept;
715 virtual
void process(const
float* const* audioIn,
float** audioOut,
716 const
float* const* cvIn,
float** cvOut, uint32_t frames) = 0;
721 virtual
void bufferSizeChanged(uint32_t newBufferSize);
726 virtual
void sampleRateChanged(
double newSampleRate);
731 virtual
void offlineModeChanged(
bool isOffline);
746 bool tryLock(
bool forcedOffline) noexcept;
751 void unlock() noexcept;
759 virtual
void initBuffers() const noexcept;
764 virtual
void clearBuffers() noexcept;
773 virtual
void handleOscMessage(const
char* method,
787 void sendMidiSingleNote(uint8_t channel, uint8_t note, uint8_t velo,
788 bool sendGui,
bool sendOsc,
bool sendCallback);
790#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
849 virtual void uiNoteOn(uint8_t channel, uint8_t note, uint8_t velo)
noexcept;
855 virtual void uiNoteOff(uint8_t channel, uint8_t note)
noexcept;
900#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH
918 virtual const
void* getNativeDescriptor() const noexcept;
923 virtual uintptr_t getUiBridgeProcessId() const noexcept;
931 uint32_t getPatchbayNodeId() const noexcept;
937 void setPatchbayNodeId(uint32_t nodeId) noexcept;
948 return BINARY_NATIVE;
963 const char*
const filename;
964 const char*
const name;
965 const char*
const label;
966 const int64_t uniqueId;
973 const char* binaryArchName,
const char* bridgeBinary);
975 static CarlaPluginPtr newLADSPA(
const Initializer& init,
const LADSPA_RDF_Descriptor* rdfDescriptor);
996 struct ProtectedData;
1023 virtual
void waitForBridgeSaveSignal() noexcept;
1042 CARLA_PREVENT_HEAP_ALLOCATION
1061 CARLA_PREVENT_HEAP_ALLOCATION
1066 friend class CarlaEngineBridge;
1074CARLA_BACKEND_END_NAMESPACE
CARLA_BACKEND_START_NAMESPACE typedef std::shared_ptr< CarlaPlugin > CarlaPluginPtr
Definition: CarlaPluginPtr.hpp:267
void * lo_message
Definition: CarlaPlugin.hpp:27
struct _NativePluginDescriptor NativePluginDescriptor
Definition: CarlaPlugin.hpp:28
Definition: CarlaEngine.hpp:442
Definition: CarlaEngine.hpp:489
Definition: CarlaEngine.hpp:645
Definition: CarlaEngine.hpp:702
Definition: CarlaEngine.hpp:551
Definition: CarlaEngine.hpp:814
Definition: CarlaPlugin.hpp:1033
ScopedDisabler(CarlaPlugin *plugin) noexcept
~ScopedDisabler() noexcept
Definition: CarlaPlugin.hpp:1052
~ScopedSingleProcessLocker() noexcept
ScopedSingleProcessLocker(CarlaPlugin *plugin, bool block) noexcept
Definition: CarlaPlugin.hpp:68
virtual void * embedCustomUI(void *ptr)
virtual void cloneLV2Files(const CarlaPlugin &other)
void setVolume(float value, bool sendOsc, bool sendCallback) noexcept
virtual void showCustomUI(bool yesNo)
void setDryWetRT(float value, bool sendCallbackLater) noexcept
virtual void setParameterMappedRange(uint32_t parameterId, float minimum, float maximum, bool sendOsc, bool sendCallback) noexcept
virtual void setParameterValue(uint32_t parameterId, float value, bool sendGui, bool sendOsc, bool sendCallback) noexcept
virtual void setParameterValueRT(uint32_t parameterId, float value, uint32_t frameOffset, bool sendCallbackLater) noexcept
ProtectedData *const pData
Definition: CarlaPlugin.hpp:996
void setBalanceLeftRT(float value, bool sendCallbackLater) noexcept
CarlaPlugin(CarlaEngine *engine, uint id)
virtual void uiMidiProgramChange(uint32_t index) noexcept
void setBalanceRight(float value, bool sendOsc, bool sendCallback) noexcept
void setVolumeRT(float value, bool sendCallbackLater) noexcept
void setBalanceRightRT(float value, bool sendCallbackLater) noexcept
virtual void uiProgramChange(uint32_t index) noexcept
void checkForMidiLearn(EngineEvent &event) noexcept
virtual void setParameterMidiChannel(uint32_t parameterId, uint8_t channel, bool sendOsc, bool sendCallback) noexcept
CarlaEngine * getEngine() 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)
virtual void setProgram(int32_t index, bool sendGui, bool sendOsc, bool sendCallback, bool doingInit=false) noexcept
virtual void * getNativeHandle() const noexcept
void setParameterValueByRealIndex(int32_t rindex, float value, bool sendGui, bool sendOsc, bool sendCallback) noexcept
virtual void restoreLV2State(bool temporary) noexcept
virtual void uiParameterChange(uint32_t index, float value) noexcept
void setPanning(float value, bool sendOsc, bool sendCallback) noexcept
virtual const void * getExtraStuff() const noexcept
Definition: CarlaPlugin.hpp:954
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 void setCtrlChannel(int8_t channel, bool sendOsc, bool sendCallback) noexcept
void setDryWet(float value, bool sendOsc, bool sendCallback) noexcept
virtual void setCustomUITitle(const char *title) noexcept
virtual PluginType getType() const noexcept=0
void postponeRtAllNotesOff()
virtual void uiNoteOn(uint8_t channel, uint8_t note, uint8_t velo) noexcept
virtual void setChunkData(const void *data, std::size_t dataSize)
virtual void prepareForDeletion() 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