11namespace tracktion {
inline namespace engine
23 static const char* xmlTypeName;
26 juce::String getPluginType()
override {
return xmlTypeName; }
32 bool takesAudioInput()
override {
return true; }
33 bool takesMidiInput()
override {
return true; }
34 bool producesAudioWhenNoAudioInput()
override {
return true; }
35 bool isSynth()
override {
return true; }
36 bool canBeAddedToRack()
override {
return false; }
38 double getLatencySeconds()
override;
39 bool needsConstantBufferSize()
override {
return true; }
50 enum Channel { left, right };
56 void setInputName (Channel,
const juce::String& inputName);
57 void setOutputName (Channel,
const juce::String& outputName);
60 const EditItemID rackTypeID;
61 const RackType::Ptr type;
63 bool linkInputs =
true, linkOutputs =
true;
67 AutomatableParameter::Ptr dryGain, wetGain;
68 AutomatableParameter::Ptr leftInDb, rightInDb, leftOutDb, rightOutDb;
70 void setInputLevel (Channel,
float);
71 void setOutputLevel (Channel,
float);
76 static constexpr double rackMinDb = -100.0;
77 static constexpr double rackMaxDb = 12.0;
juce::String getSelectableDescription() override
Subclasses must return a description of what they are.
void applyToBuffer(const PluginRenderContext &) override
Process the next block of data.
juce::String getTooltip() override
default returns the name, others can return special stuff if needed
void prepareForNextBlock(TimePosition) override
Called between successive rendering blocks.
juce::String getName() const override
The name of the type, e.g.
void initialise(const PluginInitialisationInfo &) override
Gives the plugin a chance to set itself up before being played.
void deinitialise() override
Called after play stops to release resources.
void updateAutomatableParamPosition(TimePosition) override
Updates all the auto params to their positions at this time.
int getNumOutputChannelsGivenInputs(int) override
This must return the number of output channels that the plugin will produce, given a number of input ...
Manages a list of items that are currently selected.
Passed into Plugins when they are being initialised, to give them useful contextual information that ...
Represents a position in real-life time.
The context passed to plugin render methods to provide it with buffers to fill.