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"
294 else if (value >
max)
315 const float normValue((value -
min) / (
max -
min));
317 if (normValue <= 0.0f)
319 if (normValue >= 1.0f)
334 const float normValue((value -
min) / (
max -
min));
336 if (normValue <= 0.0f)
338 if (normValue >= 1.0f)
542 Parameter(uint32_t h,
const char* n,
const char* s,
const char* u,
float def,
float min,
float max) noexcept
642 const uint8_t* dataExt;
814 Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount);
848 #if DISTRHO_PLUGIN_WANT_TIMEPOS
858 #if DISTRHO_PLUGIN_WANT_LATENCY
867 #if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
876 #if DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST
908 virtual const char*
getLabel()
const = 0;
919 virtual const char*
getMaker()
const = 0;
968 #if DISTRHO_PLUGIN_WANT_PROGRAMS
977 #if DISTRHO_PLUGIN_WANT_STATE
986 #if DISTRHO_PLUGIN_WANT_STATEFILES
990 virtual bool isStateFile(uint32_t index) = 0;
1010 #if DISTRHO_PLUGIN_WANT_PROGRAMS
1019 #if DISTRHO_PLUGIN_WANT_FULL_STATE
1029 #if DISTRHO_PLUGIN_WANT_STATE
1034 virtual void setState(
const char* key,
const char* value);
1050 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT
1055 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
1056 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
1062 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
1088 PrivateData*
const pData;
1089 friend class PluginExporter;
1091 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
1118 #endif // DISTRHO_PLUGIN_HPP_INCLUDED
void fixDefault() noexcept
Definition: DistrhoPlugin.hpp:282
static const uint32_t kParameterIsLogarithmic
Definition: DistrhoPlugin.hpp:108
virtual String getState(const char *key) const
PredefinedPortGroupsIds
Definition: DistrhoPlugin.hpp:174
#define START_NAMESPACE_DISTRHO
Definition: DistrhoInfo.hpp:828
virtual void sampleRateChanged(double newSampleRate)
const TimePosition & getTimePosition() const noexcept
virtual void deactivate()
Definition: DistrhoPlugin.hpp:1048
ParameterEnumerationValues enumValues
Definition: DistrhoPlugin.hpp:499
static const uint32_t kParameterIsOutput
Definition: DistrhoPlugin.hpp:121
virtual uint32_t getVersion() const =0
ParameterEnumerationValue * values
Definition: DistrhoPlugin.hpp:410
Definition: DistrhoPlugin.hpp:618
void setLatency(uint32_t frames) noexcept
static const uint32_t kParameterIsTrigger
Definition: DistrhoPlugin.hpp:130
ParameterEnumerationValues() noexcept
Definition: DistrhoPlugin.hpp:415
@ kPortGroupStereo
Definition: DistrhoPlugin.hpp:189
Definition: DistrhoPlugin.hpp:393
Definition: String.hpp:30
bool writeMidiEvent(const MidiEvent &midiEvent) noexcept
float getFixedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:301
static const uint32_t kDataSize
Definition: DistrhoPlugin.hpp:622
Parameter(uint32_t h, const char *n, const char *s, const char *u, float def, float min, float max) noexcept
Definition: DistrhoPlugin.hpp:542
double beatsPerMinute
Definition: DistrhoPlugin.hpp:719
int32_t bar
Definition: DistrhoPlugin.hpp:678
ParameterRanges ranges
Definition: DistrhoPlugin.hpp:493
String symbol
Definition: DistrhoPlugin.hpp:218
Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)
static const uint32_t kAudioPortIsSidechain
Definition: DistrhoPlugin.hpp:47
bool playing
Definition: DistrhoPlugin.hpp:656
Definition: DistrhoPlugin.hpp:363
@ kParameterDesignationNull
Definition: DistrhoPlugin.hpp:156
@ kPortGroupMono
Definition: DistrhoPlugin.hpp:183
#define END_NAMESPACE_DISTRHO
Definition: DistrhoInfo.hpp:834
String unit
Definition: DistrhoPlugin.hpp:481
Definition: DistrhoPlugin.hpp:447
void clear() noexcept
Definition: DistrhoPlugin.hpp:763
uint32_t frame
Definition: DistrhoPlugin.hpp:627
uint64_t frame
Definition: DistrhoPlugin.hpp:661
virtual void initState(uint32_t index, String &stateKey, String &defaultStateValue)
uint32_t getBufferSize() const noexcept
void fixValue(float &value) const noexcept
Definition: DistrhoPlugin.hpp:290
virtual const char * getMaker() const =0
static const uint32_t kCVPortHasScaledRange
Definition: DistrhoPlugin.hpp:73
virtual void setParameterValue(uint32_t index, float value)
virtual void initPortGroup(uint32_t groupId, PortGroup &portGroup)
#define DISTRHO_PLUGIN_NAME
Definition: DistrhoInfo.hpp:481
double ticksPerBeat
Definition: DistrhoPlugin.hpp:714
virtual void initProgramName(uint32_t index, String &programName)=0
virtual const char * getLabel() const =0
ParameterDesignation designation
Definition: DistrhoPlugin.hpp:504
float def
Definition: DistrhoPlugin.hpp:251
float beatType
Definition: DistrhoPlugin.hpp:708
void initDesignation(ParameterDesignation d) noexcept
Definition: DistrhoPlugin.hpp:557
virtual void bufferSizeChanged(uint32_t newBufferSize)
String name
Definition: DistrhoPlugin.hpp:459
bool canRequestParameterValueChanges() const noexcept
Parameter() noexcept
Definition: DistrhoPlugin.hpp:527
ParameterRanges() noexcept
Definition: DistrhoPlugin.hpp:266
int32_t beat
Definition: DistrhoPlugin.hpp:685
bool restrictedMode
Definition: DistrhoPlugin.hpp:404
@ kParameterDesignationBypass
Definition: DistrhoPlugin.hpp:162
float getNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:313
virtual const char * getDescription() const
Definition: DistrhoPlugin.hpp:914
virtual const char * getName() const
Definition: DistrhoPlugin.hpp:902
ParameterEnumerationValue() noexcept
Definition: DistrhoPlugin.hpp:377
String symbol
Definition: DistrhoPlugin.hpp:612
String symbol
Definition: DistrhoPlugin.hpp:474
virtual const char * getLicense() const =0
ParameterDesignation
Definition: DistrhoPlugin.hpp:152
uint8_t count
Definition: DistrhoPlugin.hpp:397
uint8_t midiCC
Definition: DistrhoPlugin.hpp:512
double tick
Definition: DistrhoPlugin.hpp:693
float getUnnormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:347
virtual void initAudioPort(bool input, uint32_t index, AudioPort &port)
virtual int64_t getUniqueId() const =0
uint32_t hints
Definition: DistrhoPlugin.hpp:203
Definition: DistrhoPlugin.hpp:807
virtual void setState(const char *key, const char *value)
uint32_t groupId
Definition: DistrhoPlugin.hpp:228
float beatsPerBar
Definition: DistrhoPlugin.hpp:703
String description
Definition: DistrhoPlugin.hpp:487
virtual void run(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0
float value
Definition: DistrhoPlugin.hpp:367
double barStartTick
Definition: DistrhoPlugin.hpp:698
static const uint32_t kAudioPortIsCV
Definition: DistrhoPlugin.hpp:40
void clear() noexcept
Definition: DistrhoPlugin.hpp:738
ParameterRanges(float df, float mn, float mx) noexcept
Definition: DistrhoPlugin.hpp:274
AudioPort() noexcept
Definition: DistrhoPlugin.hpp:233
Definition: DistrhoPlugin.hpp:666
static const uint32_t kParameterIsAutomable
Definition: DistrhoPlugin.hpp:92
Definition: DistrhoPlugin.hpp:652
virtual const char * getHomePage() const
Definition: DistrhoPlugin.hpp:925
uint32_t groupId
Definition: DistrhoPlugin.hpp:522
static const uint32_t kParameterIsBoolean
Definition: DistrhoPlugin.hpp:98
@ kPortGroupNone
Definition: DistrhoPlugin.hpp:178
Definition: DistrhoPlugin.hpp:198
float getFixedAndNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:327
virtual void loadProgram(uint32_t index)
const char * getBundlePath() const noexcept
float max
Definition: DistrhoPlugin.hpp:261
float min
Definition: DistrhoPlugin.hpp:256
double getSampleRate() const noexcept
BarBeatTick() noexcept
Definition: DistrhoPlugin.hpp:724
virtual float getParameterValue(uint32_t index) const
virtual void activate()
Definition: DistrhoPlugin.hpp:1043
bool valid
Definition: DistrhoPlugin.hpp:671
static const uint32_t kCVPortHasPositiveUnipolarRange
Definition: DistrhoPlugin.hpp:65
ParameterEnumerationValue(float v, const char *l) noexcept
Definition: DistrhoPlugin.hpp:384
String label
Definition: DistrhoPlugin.hpp:372
Definition: DistrhoPlugin.hpp:598
static const uint32_t kCVPortHasNegativeUnipolarRange
Definition: DistrhoPlugin.hpp:59
uint32_t size
Definition: DistrhoPlugin.hpp:632
String name
Definition: DistrhoPlugin.hpp:604
static const uint32_t kParameterIsInteger
Definition: DistrhoPlugin.hpp:103
static const uint32_t kCVPortHasBipolarRange
Definition: DistrhoPlugin.hpp:53
String name
Definition: DistrhoPlugin.hpp:210
String shortName
Definition: DistrhoPlugin.hpp:466
virtual void initParameter(uint32_t index, Parameter ¶meter)
uint8_t data[kDataSize]
Definition: DistrhoPlugin.hpp:641
ParameterEnumerationValues(uint32_t c, bool r, ParameterEnumerationValue *v) noexcept
Definition: DistrhoPlugin.hpp:424
bool requestParameterValueChange(uint32_t index, float value) noexcept
uint32_t hints
Definition: DistrhoPlugin.hpp:452
Definition: DistrhoPlugin.hpp:247
TimePosition() noexcept
Definition: DistrhoPlugin.hpp:755