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
292 else if (value >
max)
313 const float normValue((value -
min) / (
max -
min));
315 if (normValue <= 0.0f)
317 if (normValue >= 1.0f)
332 const float normValue((value -
min) / (
max -
min));
334 if (normValue <= 0.0f)
336 if (normValue >= 1.0f)
540 Parameter(uint32_t h,
const char* n,
const char* s,
const char* u,
float def,
float min,
float max) noexcept
637 const uint8_t* dataExt;
809 Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount);
835 #if DISTRHO_PLUGIN_WANT_TIMEPOS
845 #if DISTRHO_PLUGIN_WANT_LATENCY
854 #if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
863 #if DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST
869 bool canRequestParameterValueChanges()
const noexcept;
878 bool requestParameterValueChange(uint32_t index,
float value) noexcept;
895 virtual const char*
getLabel()
const = 0;
906 virtual const char*
getMaker()
const = 0;
955 #if DISTRHO_PLUGIN_WANT_PROGRAMS
964 #if DISTRHO_PLUGIN_WANT_STATE
973 #if DISTRHO_PLUGIN_WANT_STATEFILES
977 virtual bool isStateFile(uint32_t index) = 0;
997 #if DISTRHO_PLUGIN_WANT_PROGRAMS
1006 #if DISTRHO_PLUGIN_WANT_FULL_STATE
1016 #if DISTRHO_PLUGIN_WANT_STATE
1021 virtual void setState(
const char* key,
const char* value) = 0;
1037 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT
1042 virtual void run(
const float** inputs,
float** outputs, uint32_t frames,
1043 const MidiEvent* midiEvents, uint32_t midiEventCount) = 0;
1049 virtual void run(
const float** inputs,
float** outputs, uint32_t frames) = 0;
1075 PrivateData*
const pData;
1076 friend class PluginExporter;
1078 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
Plugin)
1100 END_NAMESPACE_DISTRHO
1102 #endif // DISTRHO_PLUGIN_HPP_INCLUDED
void fixDefault() noexcept
Definition: DistrhoPlugin.hpp:280
static const uint32_t kParameterIsLogarithmic
Definition: DistrhoPlugin.hpp:106
PredefinedPortGroupsIds
Definition: DistrhoPlugin.hpp:172
virtual void sampleRateChanged(double newSampleRate)
const TimePosition & getTimePosition() const noexcept
virtual void deactivate()
Definition: DistrhoPlugin.hpp:1035
ParameterEnumerationValues enumValues
Definition: DistrhoPlugin.hpp:497
static const uint32_t kParameterIsOutput
Definition: DistrhoPlugin.hpp:119
virtual uint32_t getVersion() const =0
Definition: DistrhoPlugin.hpp:616
void setLatency(uint32_t frames) noexcept
static const uint32_t kParameterIsTrigger
Definition: DistrhoPlugin.hpp:128
ParameterEnumerationValues() noexcept
Definition: DistrhoPlugin.hpp:413
@ kPortGroupStereo
Definition: DistrhoPlugin.hpp:187
Definition: DistrhoPlugin.hpp:391
Definition: String.hpp:30
bool writeMidiEvent(const MidiEvent &midiEvent) noexcept
float getFixedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:299
static const uint32_t kDataSize
Definition: DistrhoPlugin.hpp:620
Parameter(uint32_t h, const char *n, const char *s, const char *u, float def, float min, float max) noexcept
Definition: DistrhoPlugin.hpp:540
virtual String getState(const char *key) const =0
double beatsPerMinute
Definition: DistrhoPlugin.hpp:714
int32_t bar
Definition: DistrhoPlugin.hpp:673
virtual float getParameterValue(uint32_t index) const =0
ParameterRanges ranges
Definition: DistrhoPlugin.hpp:491
String symbol
Definition: DistrhoPlugin.hpp:216
Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)
static const uint32_t kAudioPortIsSidechain
Definition: DistrhoPlugin.hpp:45
bool playing
Definition: DistrhoPlugin.hpp:651
Definition: DistrhoPlugin.hpp:361
@ kParameterDesignationNull
Definition: DistrhoPlugin.hpp:154
@ kPortGroupMono
Definition: DistrhoPlugin.hpp:181
String unit
Definition: DistrhoPlugin.hpp:479
Definition: DistrhoPlugin.hpp:445
void clear() noexcept
Definition: DistrhoPlugin.hpp:758
uint32_t frame
Definition: DistrhoPlugin.hpp:625
uint64_t frame
Definition: DistrhoPlugin.hpp:656
uint32_t getBufferSize() const noexcept
void fixValue(float &value) const noexcept
Definition: DistrhoPlugin.hpp:288
virtual const char * getMaker() const =0
static const uint32_t kCVPortHasScaledRange
Definition: DistrhoPlugin.hpp:71
virtual void loadProgram(uint32_t index)=0
virtual void initPortGroup(uint32_t groupId, PortGroup &portGroup)
#define DISTRHO_PLUGIN_NAME
Definition: DistrhoInfo.hpp:470
double ticksPerBeat
Definition: DistrhoPlugin.hpp:709
virtual void initProgramName(uint32_t index, String &programName)=0
virtual const char * getLabel() const =0
ParameterDesignation designation
Definition: DistrhoPlugin.hpp:502
float def
Definition: DistrhoPlugin.hpp:249
float beatType
Definition: DistrhoPlugin.hpp:703
void initDesignation(ParameterDesignation d) noexcept
Definition: DistrhoPlugin.hpp:555
virtual void bufferSizeChanged(uint32_t newBufferSize)
String name
Definition: DistrhoPlugin.hpp:457
Parameter() noexcept
Definition: DistrhoPlugin.hpp:525
ParameterRanges() noexcept
Definition: DistrhoPlugin.hpp:264
int32_t beat
Definition: DistrhoPlugin.hpp:680
bool restrictedMode
Definition: DistrhoPlugin.hpp:402
virtual void initParameter(uint32_t index, Parameter ¶meter)=0
@ kParameterDesignationBypass
Definition: DistrhoPlugin.hpp:160
float getNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:311
virtual const char * getDescription() const
Definition: DistrhoPlugin.hpp:901
virtual const char * getName() const
Definition: DistrhoPlugin.hpp:889
ParameterEnumerationValue() noexcept
Definition: DistrhoPlugin.hpp:375
String symbol
Definition: DistrhoPlugin.hpp:610
String symbol
Definition: DistrhoPlugin.hpp:472
virtual const char * getLicense() const =0
ParameterDesignation
Definition: DistrhoPlugin.hpp:150
uint8_t count
Definition: DistrhoPlugin.hpp:395
uint8_t midiCC
Definition: DistrhoPlugin.hpp:510
double tick
Definition: DistrhoPlugin.hpp:688
float getUnnormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:345
virtual void initAudioPort(bool input, uint32_t index, AudioPort &port)
virtual int64_t getUniqueId() const =0
uint32_t hints
Definition: DistrhoPlugin.hpp:201
Definition: DistrhoPlugin.hpp:802
uint32_t groupId
Definition: DistrhoPlugin.hpp:226
float beatsPerBar
Definition: DistrhoPlugin.hpp:698
String description
Definition: DistrhoPlugin.hpp:485
virtual void run(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0
float value
Definition: DistrhoPlugin.hpp:365
double barStartTick
Definition: DistrhoPlugin.hpp:693
static const uint32_t kAudioPortIsCV
Definition: DistrhoPlugin.hpp:40
void clear() noexcept
Definition: DistrhoPlugin.hpp:733
ParameterRanges(float df, float mn, float mx) noexcept
Definition: DistrhoPlugin.hpp:272
AudioPort() noexcept
Definition: DistrhoPlugin.hpp:231
Definition: DistrhoPlugin.hpp:661
virtual void setParameterValue(uint32_t index, float value)=0
static const uint32_t kParameterIsAutomable
Definition: DistrhoPlugin.hpp:90
Definition: DistrhoPlugin.hpp:647
ParameterEnumerationValues(uint32_t c, bool r, const ParameterEnumerationValue *v) noexcept
Definition: DistrhoPlugin.hpp:422
virtual const char * getHomePage() const
Definition: DistrhoPlugin.hpp:912
uint32_t groupId
Definition: DistrhoPlugin.hpp:520
static const uint32_t kParameterIsBoolean
Definition: DistrhoPlugin.hpp:96
@ kPortGroupNone
Definition: DistrhoPlugin.hpp:176
Definition: DistrhoPlugin.hpp:196
const ParameterEnumerationValue * values
Definition: DistrhoPlugin.hpp:408
float getFixedAndNormalizedValue(const float &value) const noexcept
Definition: DistrhoPlugin.hpp:325
float max
Definition: DistrhoPlugin.hpp:259
float min
Definition: DistrhoPlugin.hpp:254
double getSampleRate() const noexcept
BarBeatTick() noexcept
Definition: DistrhoPlugin.hpp:719
virtual void activate()
Definition: DistrhoPlugin.hpp:1030
bool valid
Definition: DistrhoPlugin.hpp:666
static const uint32_t kCVPortHasPositiveUnipolarRange
Definition: DistrhoPlugin.hpp:63
ParameterEnumerationValue(float v, const char *l) noexcept
Definition: DistrhoPlugin.hpp:382
String label
Definition: DistrhoPlugin.hpp:370
Definition: DistrhoPlugin.hpp:596
virtual void initState(uint32_t index, String &stateKey, String &defaultStateValue)=0
static const uint32_t kCVPortHasNegativeUnipolarRange
Definition: DistrhoPlugin.hpp:57
uint32_t size
Definition: DistrhoPlugin.hpp:630
virtual void setState(const char *key, const char *value)=0
String name
Definition: DistrhoPlugin.hpp:602
static const uint32_t kParameterIsInteger
Definition: DistrhoPlugin.hpp:101
static const uint32_t kCVPortHasBipolarRange
Definition: DistrhoPlugin.hpp:51
String name
Definition: DistrhoPlugin.hpp:208
String shortName
Definition: DistrhoPlugin.hpp:464
uint8_t data[kDataSize]
Definition: DistrhoPlugin.hpp:636
uint32_t hints
Definition: DistrhoPlugin.hpp:450
Definition: DistrhoPlugin.hpp:245
TimePosition() noexcept
Definition: DistrhoPlugin.hpp:750