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)
282 return value * (max - min) + min;
345 restrictedMode(false),
360 restrictedMode =
false;
362 if (values !=
nullptr)
443 Parameter(uint32_t h,
const char* n,
const char* s,
const char* u,
float def,
float min,
float max) noexcept
448 ranges(def, min, max),
467 symbol =
"dpf_bypass";
485 static const uint32_t kDataSize = 4;
501 uint8_t data[kDataSize];
502 const uint8_t* dataExt;
592 beatsPerMinute(0.0) {}
647 Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount);
664 uint32_t getBufferSize()
const noexcept;
671 double getSampleRate()
const noexcept;
673 #if DISTRHO_PLUGIN_WANT_TIMEPOS 683 #if DISTRHO_PLUGIN_WANT_LATENCY 689 void setLatency(uint32_t frames) noexcept;
692 #if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 698 bool writeMidiEvent(
const MidiEvent& midiEvent) noexcept;
715 virtual const char* getLabel()
const = 0;
726 virtual const char* getMaker()
const = 0;
738 virtual const char* getLicense()
const = 0;
744 virtual uint32_t getVersion()
const = 0;
751 virtual int64_t getUniqueId()
const = 0;
760 virtual void initAudioPort(
bool input, uint32_t index,
AudioPort& port);
766 virtual void initParameter(uint32_t index,
Parameter& parameter) = 0;
768 #if DISTRHO_PLUGIN_WANT_PROGRAMS 774 virtual void initProgramName(uint32_t index,
String& programName) = 0;
777 #if DISTRHO_PLUGIN_WANT_STATE 783 virtual void initState(uint32_t index,
String& stateKey,
String& defaultStateValue) = 0;
793 virtual float getParameterValue(uint32_t index)
const = 0;
801 virtual void setParameterValue(uint32_t index,
float value) = 0;
803 #if DISTRHO_PLUGIN_WANT_PROGRAMS 809 virtual void loadProgram(uint32_t index) = 0;
812 #if DISTRHO_PLUGIN_WANT_FULL_STATE 819 virtual String getState(
const char* key)
const = 0;
822 #if DISTRHO_PLUGIN_WANT_STATE 827 virtual void setState(
const char* key,
const char* value) = 0;
843 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT 848 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
849 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
855 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
868 virtual void bufferSizeChanged(uint32_t newBufferSize);
875 virtual void sampleRateChanged(
double newSampleRate);
881 PrivateData*
const pData;
882 friend class PluginExporter;
884 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
906 END_NAMESPACE_DISTRHO
908 #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:836
void initDesignation(ParameterDesignation d) noexcept
Definition: DistrhoPlugin.hpp:456
uint8_t midiCC
Definition: DistrhoPlugin.hpp:425
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
String symbol
Definition: DistrhoPlugin.hpp:393
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:841
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
Definition: DistrhoPlugin.hpp:291
Definition: String.hpp:29
ParameterEnumerationValues() noexcept
Definition: DistrhoPlugin.hpp:343
#define DISTRHO_PLUGIN_NAME
Definition: DistrhoInfo.hpp:466
Definition: DistrhoPlugin.hpp:321
static const uint32_t kAudioPortIsSidechain
Definition: DistrhoPlugin.hpp:45
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
Definition: DistrhoPlugin.hpp:640
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
virtual const char * getHomePage() const
Definition: DistrhoPlugin.hpp:732
TimePosition() noexcept
Definition: DistrhoPlugin.hpp:598
ParameterEnumerationValues enumValues
Definition: DistrhoPlugin.hpp:412
uint64_t frame
Definition: DistrhoPlugin.hpp:521
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
float def
Definition: DistrhoPlugin.hpp:179
ParameterRanges(float df, float mn, float mx) noexcept
Definition: DistrhoPlugin.hpp:202
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
virtual const char * getName() const
Definition: DistrhoPlugin.hpp:709
const float & getFixedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:229
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
virtual const char * getDescription() const
Definition: DistrhoPlugin.hpp:721
String unit
Definition: DistrhoPlugin.hpp:400
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
ParameterDesignation
Definition: DistrhoPlugin.hpp:155
bool restrictedMode
Definition: DistrhoPlugin.hpp:332
const ParameterEnumerationValue * values
Definition: DistrhoPlugin.hpp:338
void fixDefault() noexcept
Definition: DistrhoPlugin.hpp:210
float getFixedAndNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:255
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
static const uint32_t kParameterIsLogarithmic
Definition: DistrhoPlugin.hpp:80