17#ifndef DAF_PLUGIN_HPP_INCLUDED
18#define DAF_PLUGIN_HPP_INCLUDED
20#include "DafDetails.hpp"
21#include "extra/LeakDetector.hpp"
22#include "src/DafPluginChecks.h"
67 Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount);
119#if DAF_PLUGIN_WANT_TIMEPOS
129#if DAF_PLUGIN_WANT_LATENCY
138#if DAF_PLUGIN_WANT_TAIL
142 static constexpr uint32_t kTailInfinite = 0xffffffffU;
155 void setTail(uint32_t frames)
noexcept;
158#if DAF_PLUGIN_WANT_MIDI_OUTPUT
167#if DAF_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST
185#if DAF_PLUGIN_WANT_STATE
220 #ifdef DAF_PLUGIN_LABEL
221 virtual const char*
getLabel()
const
223 return DAF_PLUGIN_LABEL;
235 #ifdef DAF_PLUGIN_DESCRIPTION
236 return DAF_PLUGIN_DESCRIPTION;
245 #ifdef DAF_PLUGIN_MAKER
246 virtual const char*
getMaker()
const
248 return DAF_PLUGIN_MAKER;
260 #ifdef DAF_PLUGIN_HOMEPAGE
261 return DAF_PLUGIN_HOMEPAGE;
271 #ifdef DAF_PLUGIN_LICENSE
274 return DAF_PLUGIN_LICENSE;
293 #ifdef DAF_PLUGIN_UNIQUE_ID
324#if DAF_PLUGIN_WANT_PROGRAMS
333#if DAF_PLUGIN_WANT_STATE
341 DAF_DEPRECATED_BY(
"initState(uint32_t,State&)")
344 DAF_DEPRECATED_BY(
"initState(uint32_t,State&)")
345 virtual
bool isStateFile(uint32_t) {
return false; }
393#if DAF_PLUGIN_WANT_PROGRAMS
409#if DAF_PLUGIN_WANT_FULL_STATE
419#if DAF_PLUGIN_WANT_STATE
424 virtual void setState(
const char* key,
const char* value);
445#if DAF_PLUGIN_WANT_MIDI_INPUT
450 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
451 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
457 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
492 virtual void ioChanged(uint16_t numInputs, uint16_t numOutputs);
498 PrivateData*
const pData;
499 friend class PluginExporter;
501 DAF_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
Definition DafPlugin.hpp:61
virtual const char * getDescription() const
Definition DafPlugin.hpp:233
bool writeMidiEvent(const MidiEvent &midiEvent) noexcept
const char * getBundlePath() const noexcept
virtual void run(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0
uint32_t getBufferSize() const noexcept
void setLatency(uint32_t frames) noexcept
virtual void sampleRateChanged(double newSampleRate)
double getSampleRate() const noexcept
virtual void loadProgram(uint32_t index)
virtual const char * getHomePage() const
Definition DafPlugin.hpp:258
virtual void initProgramName(uint32_t index, String &programName)=0
bool canRequestParameterValueChanges() const noexcept
virtual void initPortGroup(uint32_t groupId, PortGroup &portGroup)
virtual bool getParameterValueText(uint32_t, float, char *, uint32_t) const
Definition DafPlugin.hpp:370
virtual const char * getLabel() const =0
const TimePosition & getTimePosition() const noexcept
virtual void initAudioPort(bool input, uint32_t index, AudioPort &port)
virtual void setParameterValue(uint32_t index, float value)
bool isSelfTestInstance() const noexcept
virtual bool hasCustomParameterText(uint32_t) const
Definition DafPlugin.hpp:363
virtual String getState(const char *key) const
virtual void bufferSizeChanged(uint32_t newBufferSize)
virtual void deactivate()
Definition DafPlugin.hpp:443
virtual void activate()
Definition DafPlugin.hpp:438
bool updateStateValue(const char *key, const char *value) noexcept
virtual const char * getName() const
Definition DafPlugin.hpp:214
virtual void initParameter(uint32_t index, Parameter ¶meter)
bool isDummyInstance() const noexcept
virtual uint32_t getVersion() const =0
virtual bool validateStateValue(const char *, const char *) const
Definition DafPlugin.hpp:429
virtual void ioChanged(uint16_t numInputs, uint16_t numOutputs)
Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)
virtual void initState(uint32_t index, State &state)
virtual int64_t getUniqueId() const =0
virtual bool getParameterValueFromText(uint32_t, const char *, float &) const
Definition DafPlugin.hpp:380
bool requestParameterValueChange(uint32_t index, float value) noexcept
virtual int32_t getCurrentProgram() const
Definition DafPlugin.hpp:406
virtual const char * getMaker() const =0
virtual const char * getLicense() const =0
virtual float getParameterValue(uint32_t index) const
virtual void setState(const char *key, const char *value)
#define END_NAMESPACE_DAF
Definition DafInfo.hpp:996
#define START_NAMESPACE_DAF
Definition DafInfo.hpp:990
#define DAF_PLUGIN_UNIQUE_ID
Definition DafInfo.hpp:722
#define DAF_PLUGIN_NAME
Definition DafInfo.hpp:488
Definition DafDetails.hpp:303
Definition DafDetails.hpp:939
Definition DafDetails.hpp:607
Definition DafDetails.hpp:845
Definition DafDetails.hpp:871
Definition DafDetails.hpp:973