17 #ifndef DISTRHO_PLUGIN_HPP_INCLUDED
18 #define DISTRHO_PLUGIN_HPP_INCLUDED
20 #include "extra/String.hpp"
21 #include "extra/LeakDetector.hpp"
22 #include "src/DistrhoPluginChecks.h"
24 START_NAMESPACE_DISTRHO
222 else if (value >
max)
243 const float normValue((value -
min) / (
max -
min));
245 if (normValue <= 0.0f)
247 if (normValue >= 1.0f)
262 const float normValue((value -
min) / (
max -
min));
264 if (normValue <= 0.0f)
266 if (normValue >= 1.0f)
443 Parameter(uint32_t h,
const char* n,
const char* s,
const char* u,
float def,
float min,
float max) noexcept
502 const uint8_t* dataExt;
673 Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount);
699 #if DISTRHO_PLUGIN_WANT_TIMEPOS
709 #if DISTRHO_PLUGIN_WANT_LATENCY
718 #if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
741 virtual const char*
getLabel()
const = 0;
752 virtual const char*
getMaker()
const = 0;
794 #if DISTRHO_PLUGIN_WANT_PROGRAMS
803 #if DISTRHO_PLUGIN_WANT_STATE
829 #if DISTRHO_PLUGIN_WANT_PROGRAMS
838 #if DISTRHO_PLUGIN_WANT_FULL_STATE
848 #if DISTRHO_PLUGIN_WANT_STATE
853 virtual void setState(
const char* key,
const char* value) = 0;
869 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT
874 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
875 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
881 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
907 PrivateData*
const pData;
908 friend class PluginExporter;
910 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
932 END_NAMESPACE_DISTRHO
934 #endif // DISTRHO_PLUGIN_HPP_INCLUDED
float min
Definition: DistrhoPlugin.hpp:184
Definition: DistrhoPlugin.hpp:114
ParameterDesignation designation
Definition: DistrhoPlugin.hpp:417
virtual void activate()
Definition: DistrhoPlugin.hpp:862
void initDesignation(ParameterDesignation d) noexcept
Definition: DistrhoPlugin.hpp:456
uint8_t midiCC
Definition: DistrhoPlugin.hpp:425
virtual float getParameterValue(uint32_t index) const =0
Parameter() noexcept
Definition: DistrhoPlugin.hpp:430
uint32_t frame
Definition: DistrhoPlugin.hpp:490
uint32_t size
Definition: DistrhoPlugin.hpp:495
String name
Definition: DistrhoPlugin.hpp:126
uint32_t getBufferSize() const noexcept
String symbol
Definition: DistrhoPlugin.hpp:393
void clear() noexcept
Definition: DistrhoPlugin.hpp:622
virtual void initState(uint32_t index, String &stateKey, String &defaultStateValue)=0
uint8_t data[kDataSize]
Definition: DistrhoPlugin.hpp:501
virtual void setState(const char *key, const char *value)=0
String symbol
Definition: DistrhoPlugin.hpp:134
void fixValue(float &value) const noexcept
Definition: DistrhoPlugin.hpp:218
ParameterEnumerationValue() noexcept
Definition: DistrhoPlugin.hpp:305
virtual void deactivate()
Definition: DistrhoPlugin.hpp:867
Definition: DistrhoPlugin.hpp:159
ParameterEnumerationValues(uint32_t c, bool r, const ParameterEnumerationValue *v) noexcept
Definition: DistrhoPlugin.hpp:352
double ticksPerBeat
Definition: DistrhoPlugin.hpp:573
Definition: DistrhoPlugin.hpp:481
int32_t bar
Definition: DistrhoPlugin.hpp:538
virtual void loadProgram(uint32_t index)=0
virtual uint32_t getVersion() const =0
virtual const char * getLabel() const =0
Definition: DistrhoPlugin.hpp:291
Definition: String.hpp:29
virtual void bufferSizeChanged(uint32_t newBufferSize)
ParameterEnumerationValues() noexcept
Definition: DistrhoPlugin.hpp:343
#define DISTRHO_PLUGIN_NAME
Definition: DistrhoInfo.hpp:470
Definition: DistrhoPlugin.hpp:321
virtual String getState(const char *key) const =0
static const uint32_t kAudioPortIsSidechain
Definition: DistrhoPlugin.hpp:45
virtual const char * getLicense() const =0
ParameterRanges() noexcept
Definition: DistrhoPlugin.hpp:194
double beatsPerMinute
Definition: DistrhoPlugin.hpp:578
uint8_t count
Definition: DistrhoPlugin.hpp:325
float value
Definition: DistrhoPlugin.hpp:295
uint32_t hints
Definition: DistrhoPlugin.hpp:378
virtual void run(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0
void clear() noexcept
Definition: DistrhoPlugin.hpp:597
bool writeMidiEvent(const MidiEvent &midiEvent) noexcept
Definition: DistrhoPlugin.hpp:666
Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)
float getUnnormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:275
bool playing
Definition: DistrhoPlugin.hpp:516
int32_t tick
Definition: DistrhoPlugin.hpp:552
float beatsPerBar
Definition: DistrhoPlugin.hpp:562
uint32_t hints
Definition: DistrhoPlugin.hpp:119
TimePosition() noexcept
Definition: DistrhoPlugin.hpp:614
ParameterEnumerationValues enumValues
Definition: DistrhoPlugin.hpp:412
uint64_t frame
Definition: DistrhoPlugin.hpp:521
virtual void setParameterValue(uint32_t index, float value)=0
virtual const char * getMaker() const =0
BarBeatTick() noexcept
Definition: DistrhoPlugin.hpp:583
ParameterEnumerationValue(float v, const char *l) noexcept
Definition: DistrhoPlugin.hpp:312
static const uint32_t kParameterIsAutomable
Definition: DistrhoPlugin.hpp:64
float beatType
Definition: DistrhoPlugin.hpp:567
float getNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:241
virtual const char * getDescription() const
Definition: DistrhoPlugin.hpp:747
float def
Definition: DistrhoPlugin.hpp:179
ParameterRanges(float df, float mn, float mx) noexcept
Definition: DistrhoPlugin.hpp:202
virtual void initProgramName(uint32_t index, String &programName)=0
double barStartTick
Definition: DistrhoPlugin.hpp:557
Parameter(uint32_t h, const char *n, const char *s, const char *u, float def, float min, float max) noexcept
Definition: DistrhoPlugin.hpp:443
ParameterRanges ranges
Definition: DistrhoPlugin.hpp:406
AudioPort() noexcept
Definition: DistrhoPlugin.hpp:139
int32_t beat
Definition: DistrhoPlugin.hpp:545
const float & getFixedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:229
virtual void initParameter(uint32_t index, Parameter ¶meter)=0
static const uint32_t kParameterIsBoolean
Definition: DistrhoPlugin.hpp:70
float max
Definition: DistrhoPlugin.hpp:189
Definition: DistrhoPlugin.hpp:175
String label
Definition: DistrhoPlugin.hpp:300
String unit
Definition: DistrhoPlugin.hpp:400
virtual int64_t getUniqueId() const =0
static const uint32_t kParameterIsInteger
Definition: DistrhoPlugin.hpp:75
Definition: DistrhoPlugin.hpp:165
Definition: DistrhoPlugin.hpp:373
static const uint32_t kAudioPortIsCV
Definition: DistrhoPlugin.hpp:40
bool valid
Definition: DistrhoPlugin.hpp:531
virtual const char * getName() const
Definition: DistrhoPlugin.hpp:735
static const uint32_t kDataSize
Definition: DistrhoPlugin.hpp:485
ParameterDesignation
Definition: DistrhoPlugin.hpp:155
bool restrictedMode
Definition: DistrhoPlugin.hpp:332
virtual void initAudioPort(bool input, uint32_t index, AudioPort &port)
const ParameterEnumerationValue * values
Definition: DistrhoPlugin.hpp:338
void fixDefault() noexcept
Definition: DistrhoPlugin.hpp:210
double getSampleRate() const noexcept
const TimePosition & getTimePosition() const noexcept
float getFixedAndNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:255
void setLatency(uint32_t frames) noexcept
static const uint32_t kParameterIsOutput
Definition: DistrhoPlugin.hpp:90
Definition: DistrhoPlugin.hpp:526
Definition: DistrhoPlugin.hpp:512
static const uint32_t kParameterIsTrigger
Definition: DistrhoPlugin.hpp:99
String name
Definition: DistrhoPlugin.hpp:385
virtual void sampleRateChanged(double newSampleRate)
virtual const char * getHomePage() const
Definition: DistrhoPlugin.hpp:758
static const uint32_t kParameterIsLogarithmic
Definition: DistrhoPlugin.hpp:80