17#include "DistrhoPluginInternal.hpp"
33const String PluginExporter::sFallbackString;
34 AudioPortWithBusId PluginExporter::sFallbackAudioPort;
36const ParameterEnumerationValues PluginExporter::sFallbackEnumValues;
37const PortGroupWithId PluginExporter::sFallbackPortGroup;
43 : pData(new PrivateData())
45#if DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS > 0
49#ifdef DPF_ABORT_ON_ERROR
50# define DPF_ABORT abort();
55 if (parameterCount > 0)
57 pData->parameterCount = parameterCount;
58 pData->parameters =
new Parameter[parameterCount];
63#if DISTRHO_PLUGIN_WANT_PROGRAMS
64 pData->programCount = programCount;
65 pData->programNames =
new String[programCount];
67 d_stderr2(
"DPF warning: Plugins with programs must define `DISTRHO_PLUGIN_WANT_PROGRAMS` to 1");
74#if DISTRHO_PLUGIN_WANT_STATE
75 pData->stateCount = stateCount;
76 pData->states =
new State[stateCount];
78 d_stderr2(
"DPF warning: Plugins with state must define `DISTRHO_PLUGIN_WANT_STATE` to 1");
96 return pData->bufferSize;
101 return pData->sampleRate;
106 return pData->bundlePath;
111 return pData->isDummy;
114#if DISTRHO_PLUGIN_WANT_TIMEPOS
117 return pData->timePosition;
121#if DISTRHO_PLUGIN_WANT_LATENCY
122void Plugin::setLatency(
uint32_t frames)
noexcept
124 pData->latency = frames;
128#if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
129bool Plugin::writeMidiEvent(
const MidiEvent& midiEvent)
noexcept
131 return pData->writeMidiCallback(midiEvent);
135#if DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST
138 return pData->canRequestParameterValueChanges;
141bool Plugin::requestParameterValueChange(
const uint32_t index,
const float value)
noexcept
143 return pData->requestParameterValueChangeCallback(index,
value);
147#if DISTRHO_PLUGIN_WANT_STATE
148bool Plugin::updateStateValue(
const char*
const key,
const char*
const value)
noexcept
150 return pData->updateStateValueCallback(
key,
value);
157void Plugin::initAudioPort(
bool input,
uint32_t index, AudioPort& port)
159 if (
port.hints & kAudioPortIsCV)
161 port.name = input ?
"CV Input " :
"CV Output ";
162 port.name += String(index+1);
163 port.symbol = input ?
"cv_in_" :
"cv_out_";
164 port.symbol += String(index+1);
168 port.name = input ?
"Audio Input " :
"Audio Output ";
169 port.name += String(index+1);
170 port.symbol = input ?
"audio_in_" :
"audio_out_";
171 port.symbol += String(index+1);
175void Plugin::initParameter(
uint32_t, Parameter&) {}
177void Plugin::initPortGroup(
const uint32_t groupId, PortGroup& portGroup)
179 fillInPredefinedPortGroupData(groupId, portGroup);
182#if DISTRHO_PLUGIN_WANT_PROGRAMS
186#if DISTRHO_PLUGIN_WANT_STATE
190 String stateKey, defaultStateValue;
192 #if defined(__clang__)
193 #pragma clang diagnostic push
194 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
195 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
196 #pragma GCC diagnostic push
197 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
199 initState(index, stateKey, defaultStateValue);
200 if (isStateFile(index))
201 hints = kStateIsFilenamePath;
202 #if defined(__clang__)
203 #pragma clang diagnostic pop
204 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
205 #pragma GCC diagnostic pop
209 state.key = stateKey;
210 state.label = stateKey;
211 state.defaultValue = defaultStateValue;
218float Plugin::getParameterValue(
uint32_t)
const {
return 0.0f; }
219void Plugin::setParameterValue(
uint32_t,
float) {}
221#if DISTRHO_PLUGIN_WANT_PROGRAMS
222void Plugin::loadProgram(
uint32_t) {}
225#if DISTRHO_PLUGIN_WANT_FULL_STATE
226String Plugin::getState(
const char*)
const {
return String(); }
229#if DISTRHO_PLUGIN_WANT_STATE
230void Plugin::setState(
const char*,
const char*) {}
236void Plugin::bufferSizeChanged(
uint32_t) {}
237void Plugin::sampleRateChanged(
double) {}
unsigned int uint
Definition CarlaDefines.h:327
#define noexcept
Definition DistrhoDefines.h:72
#define END_NAMESPACE_DISTRHO
Definition DistrhoDefines.h:191
#define START_NAMESPACE_DISTRHO
Definition DistrhoDefines.h:190
START_NAMESPACE_DISTRHO uint32_t d_nextBufferSize
Definition DistrhoPlugin.cpp:24
const char * d_nextBundlePath
Definition DistrhoPlugin.cpp:26
bool d_nextPluginIsDummy
Definition DistrhoPlugin.cpp:27
bool d_nextCanRequestParameterValueChanges
Definition DistrhoPlugin.cpp:28
double d_nextSampleRate
Definition DistrhoPlugin.cpp:25
#define DISTRHO_PLUGIN_NUM_INPUTS
Definition DistrhoPluginInfo.h:26
#define DISTRHO_PLUGIN_NUM_OUTPUTS
Definition DistrhoPluginInfo.h:27
struct _ParameterRanges ParameterRanges
static PuglViewHint int value
Definition pugl.h:1708
unsigned int uint32_t
Definition mid.cpp:100
jack_client_t client jack_client_t client jack_client_t client jack_client_t JackInfoShutdownCallback void arg jack_client_t jack_port_t * port
Definition juce_linux_JackAudio.cpp:65
ZCONST char * key
Definition crypt.c:587
#define const
Definition zconf.h:137