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
190 else if (value > max)
211 const float normValue((value - min) / (max - min));
213 if (normValue <= 0.0f)
215 if (normValue >= 1.0f)
230 const float normValue((value - min) / (max - min));
232 if (normValue <= 0.0f)
234 if (normValue >= 1.0f)
250 return value * (max -
min) + min;
327 const uint8_t* dataExt;
417 beatsPerMinute(0.0) {}
472 Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount);
498 #if DISTRHO_PLUGIN_WANT_TIMEPOS
508 #if DISTRHO_PLUGIN_WANT_LATENCY
517 #if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
540 virtual const char*
getLabel()
const = 0;
545 virtual const char*
getMaker()
const = 0;
580 #if DISTRHO_PLUGIN_WANT_PROGRAMS
589 #if DISTRHO_PLUGIN_WANT_STATE
615 #if DISTRHO_PLUGIN_WANT_PROGRAMS
624 #if DISTRHO_PLUGIN_WANT_STATE
629 virtual void setState(
const char* key,
const char* value) = 0;
645 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT
650 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
651 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
657 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
683 PrivateData*
const pData;
684 friend class PluginExporter;
686 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
708 END_NAMESPACE_DISTRHO
710 #endif // DISTRHO_PLUGIN_HPP_INCLUDED
float min
Definition: DistrhoPlugin.hpp:152
Definition: DistrhoPlugin.hpp:105
virtual void activate()
Definition: DistrhoPlugin.hpp:638
virtual float getParameterValue(uint32_t index) const =0
Parameter() noexcept
Definition: DistrhoPlugin.hpp:295
uint32_t frame
Definition: DistrhoPlugin.hpp:315
uint32_t size
Definition: DistrhoPlugin.hpp:320
String name
Definition: DistrhoPlugin.hpp:117
uint32_t getBufferSize() const noexcept
String symbol
Definition: DistrhoPlugin.hpp:277
virtual void initState(uint32_t index, String &stateKey, String &defaultStateValue)=0
uint8_t data[kDataSize]
Definition: DistrhoPlugin.hpp:326
virtual void setState(const char *key, const char *value)=0
String symbol
Definition: DistrhoPlugin.hpp:125
void fixValue(float &value) const noexcept
Definition: DistrhoPlugin.hpp:186
virtual void deactivate()
Definition: DistrhoPlugin.hpp:643
double ticksPerBeat
Definition: DistrhoPlugin.hpp:398
Definition: DistrhoPlugin.hpp:306
int32_t bar
Definition: DistrhoPlugin.hpp:363
virtual void loadProgram(uint32_t index)=0
virtual uint32_t getVersion() const =0
virtual const char * getLabel() const =0
Definition: String.hpp:27
virtual void bufferSizeChanged(uint32_t newBufferSize)
#define DISTRHO_PLUGIN_NAME
Definition: DistrhoInfo.hpp:467
static const uint32_t kAudioPortIsSidechain
Definition: DistrhoPlugin.hpp:45
virtual const char * getLicense() const =0
ParameterRanges() noexcept
Definition: DistrhoPlugin.hpp:162
double beatsPerMinute
Definition: DistrhoPlugin.hpp:403
uint32_t hints
Definition: DistrhoPlugin.hpp:262
virtual void run(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0
bool writeMidiEvent(const MidiEvent &midiEvent) noexcept
Definition: DistrhoPlugin.hpp:465
Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)
float getUnnormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:243
bool playing
Definition: DistrhoPlugin.hpp:341
int32_t tick
Definition: DistrhoPlugin.hpp:377
float beatsPerBar
Definition: DistrhoPlugin.hpp:387
uint32_t hints
Definition: DistrhoPlugin.hpp:110
TimePosition() noexcept
Definition: DistrhoPlugin.hpp:423
uint64_t frame
Definition: DistrhoPlugin.hpp:346
virtual void setParameterValue(uint32_t index, float value)=0
virtual const char * getMaker() const =0
BarBeatTick() noexcept
Definition: DistrhoPlugin.hpp:408
static const uint32_t kParameterIsAutomable
Definition: DistrhoPlugin.hpp:64
float beatType
Definition: DistrhoPlugin.hpp:392
float getNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:209
float def
Definition: DistrhoPlugin.hpp:147
ParameterRanges(float df, float mn, float mx) noexcept
Definition: DistrhoPlugin.hpp:170
virtual void initProgramName(uint32_t index, String &programName)=0
double barStartTick
Definition: DistrhoPlugin.hpp:382
ParameterRanges ranges
Definition: DistrhoPlugin.hpp:290
AudioPort() noexcept
Definition: DistrhoPlugin.hpp:130
int32_t beat
Definition: DistrhoPlugin.hpp:370
const float & getFixedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:197
virtual void initParameter(uint32_t index, Parameter ¶meter)=0
static const uint32_t kParameterIsBoolean
Definition: DistrhoPlugin.hpp:70
float max
Definition: DistrhoPlugin.hpp:157
Definition: DistrhoPlugin.hpp:143
String unit
Definition: DistrhoPlugin.hpp:284
virtual int64_t getUniqueId() const =0
static const uint32_t kParameterIsInteger
Definition: DistrhoPlugin.hpp:75
Definition: DistrhoPlugin.hpp:257
static const uint32_t kAudioPortIsCV
Definition: DistrhoPlugin.hpp:40
bool valid
Definition: DistrhoPlugin.hpp:356
virtual const char * getName() const
Definition: DistrhoPlugin.hpp:534
static const uint32_t kDataSize
Definition: DistrhoPlugin.hpp:310
virtual void initAudioPort(bool input, uint32_t index, AudioPort &port)
void fixDefault() noexcept
Definition: DistrhoPlugin.hpp:178
double getSampleRate() const noexcept
const TimePosition & getTimePosition() const noexcept
float getFixedAndNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:223
void setLatency(uint32_t frames) noexcept
static const uint32_t kParameterIsOutput
Definition: DistrhoPlugin.hpp:90
Definition: DistrhoPlugin.hpp:351
Definition: DistrhoPlugin.hpp:337
String name
Definition: DistrhoPlugin.hpp:269
virtual void sampleRateChanged(double newSampleRate)
static const uint32_t kParameterIsLogarithmic
Definition: DistrhoPlugin.hpp:80