17 #ifndef DISTRHO_PLUGIN_HPP_INCLUDED
18 #define DISTRHO_PLUGIN_HPP_INCLUDED
20 #include "extra/d_string.hpp"
21 #include "src/DistrhoPluginChecks.h"
23 START_NAMESPACE_DISTRHO
189 else if (value > max)
210 const float normValue((value - min) / (max - min));
212 if (normValue <= 0.0f)
214 if (normValue >= 1.0f)
229 const float normValue((value - min) / (max - min));
231 if (normValue <= 0.0f)
233 if (normValue >= 1.0f)
249 return value * (max -
min) + min;
326 const uint8_t* dataExt;
416 beatsPerMinute(0.0) {}
471 Plugin(
const uint32_t parameterCount,
const uint32_t programCount,
const uint32_t stateCount);
497 #if DISTRHO_PLUGIN_WANT_TIMEPOS
507 #if DISTRHO_PLUGIN_WANT_LATENCY
516 #if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
539 virtual const char*
getLabel()
const = 0;
544 virtual const char*
getMaker()
const = 0;
579 #if DISTRHO_PLUGIN_WANT_PROGRAMS
588 #if DISTRHO_PLUGIN_WANT_STATE
594 virtual void initState(uint32_t index, String& stateKey, String& defaultStateValue) = 0;
614 #if DISTRHO_PLUGIN_WANT_PROGRAMS
623 #if DISTRHO_PLUGIN_WANT_STATE
628 virtual void setState(
const String& key,
const String& value) = 0;
644 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT
649 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
650 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
656 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
682 PrivateData*
const pData;
683 friend class PluginExporter;
685 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
707 END_NAMESPACE_DISTRHO
709 #endif // DISTRHO_PLUGIN_HPP_INCLUDED
float min
Definition: DistrhoPlugin.hpp:151
Definition: DistrhoPlugin.hpp:104
Plugin(const uint32_t parameterCount, const uint32_t programCount, const uint32_t stateCount)
virtual float getParameterValue(uint32_t index) const =0
virtual void setProgram(uint32_t index)=0
Parameter() noexcept
Definition: DistrhoPlugin.hpp:294
uint32_t frame
Definition: DistrhoPlugin.hpp:314
uint32_t size
Definition: DistrhoPlugin.hpp:319
String name
Definition: DistrhoPlugin.hpp:116
uint32_t getBufferSize() const noexcept
String symbol
Definition: DistrhoPlugin.hpp:276
virtual void initState(uint32_t index, String &stateKey, String &defaultStateValue)=0
uint8_t data[kDataSize]
Definition: DistrhoPlugin.hpp:325
String symbol
Definition: DistrhoPlugin.hpp:124
void fixValue(float &value) const noexcept
Definition: DistrhoPlugin.hpp:185
double ticksPerBeat
Definition: DistrhoPlugin.hpp:397
Definition: DistrhoPlugin.hpp:305
int32_t bar
Definition: DistrhoPlugin.hpp:362
virtual void setState(const String &key, const String &value)=0
virtual uint32_t getVersion() const =0
virtual const char * getLabel() const =0
virtual void bufferSizeChanged(uint32_t newBufferSize)
#define DISTRHO_PLUGIN_NAME
Definition: DistrhoInfo.hpp:148
static const uint32_t kAudioPortIsSidechain
Definition: DistrhoPlugin.hpp:44
virtual const char * getLicense() const =0
ParameterRanges() noexcept
Definition: DistrhoPlugin.hpp:161
virtual void activated()
Definition: DistrhoPlugin.hpp:637
double beatsPerMinute
Definition: DistrhoPlugin.hpp:402
uint32_t hints
Definition: DistrhoPlugin.hpp:261
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:464
float getUnnormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:242
bool playing
Definition: DistrhoPlugin.hpp:340
int32_t tick
Definition: DistrhoPlugin.hpp:376
float beatsPerBar
Definition: DistrhoPlugin.hpp:386
uint32_t hints
Definition: DistrhoPlugin.hpp:109
TimePosition() noexcept
Definition: DistrhoPlugin.hpp:422
uint64_t frame
Definition: DistrhoPlugin.hpp:345
virtual void setParameterValue(uint32_t index, float value)=0
virtual const char * getMaker() const =0
BarBeatTick() noexcept
Definition: DistrhoPlugin.hpp:407
static const uint32_t kParameterIsAutomable
Definition: DistrhoPlugin.hpp:63
float beatType
Definition: DistrhoPlugin.hpp:391
float getNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:208
float def
Definition: DistrhoPlugin.hpp:146
virtual void initProgramName(uint32_t index, String &programName)=0
double barStartTick
Definition: DistrhoPlugin.hpp:381
ParameterRanges ranges
Definition: DistrhoPlugin.hpp:289
AudioPort() noexcept
Definition: DistrhoPlugin.hpp:129
int32_t beat
Definition: DistrhoPlugin.hpp:369
const float & getFixedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:196
virtual void initParameter(uint32_t index, Parameter ¶meter)=0
static const uint32_t kParameterIsBoolean
Definition: DistrhoPlugin.hpp:69
float max
Definition: DistrhoPlugin.hpp:156
Definition: DistrhoPlugin.hpp:142
String unit
Definition: DistrhoPlugin.hpp:283
virtual int64_t getUniqueId() const =0
static const uint32_t kParameterIsInteger
Definition: DistrhoPlugin.hpp:74
Definition: DistrhoPlugin.hpp:256
static const uint32_t kAudioPortIsCV
Definition: DistrhoPlugin.hpp:39
bool valid
Definition: DistrhoPlugin.hpp:355
virtual const char * getName() const
Definition: DistrhoPlugin.hpp:533
static const uint32_t kDataSize
Definition: DistrhoPlugin.hpp:309
virtual void initAudioPort(bool input, uint32_t index, AudioPort &port)
virtual void deactivated()
Definition: DistrhoPlugin.hpp:642
void fixDefault() noexcept
Definition: DistrhoPlugin.hpp:177
double getSampleRate() const noexcept
const TimePosition & getTimePosition() const noexcept
float getFixedAndNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:222
void setLatency(uint32_t frames) noexcept
static const uint32_t kParameterIsOutput
Definition: DistrhoPlugin.hpp:89
Definition: DistrhoPlugin.hpp:350
Definition: DistrhoPlugin.hpp:336
String name
Definition: DistrhoPlugin.hpp:268
virtual void sampleRateChanged(double newSampleRate)
static const uint32_t kParameterIsLogarithmic
Definition: DistrhoPlugin.hpp:79
ParameterRanges(const float df, const float mn, const float mx) noexcept
Definition: DistrhoPlugin.hpp:169