2023-03-25 20:24:10 +00:00
|
|
|
#pragma once
|
|
|
|
#include "../shape/Vector2.h"
|
2023-03-28 12:12:41 +00:00
|
|
|
#include <JuceHeader.h>
|
2023-03-28 12:44:46 +00:00
|
|
|
#include "EffectApplication.h"
|
2023-03-25 20:24:10 +00:00
|
|
|
|
|
|
|
class Effect {
|
|
|
|
public:
|
2023-03-28 12:44:46 +00:00
|
|
|
Effect(std::unique_ptr<EffectApplication> effectApplication, juce::String name, juce::String id);
|
2023-07-04 19:47:54 +00:00
|
|
|
Effect(juce::String name, juce::String id);
|
|
|
|
Effect(juce::String name, juce::String id, double value);
|
2023-03-25 20:24:10 +00:00
|
|
|
|
2023-03-28 12:44:46 +00:00
|
|
|
Vector2 apply(int index, Vector2 input);
|
|
|
|
double getValue();
|
|
|
|
void setValue(double value);
|
|
|
|
void setFrequency(double frequency);
|
|
|
|
int getPrecedence();
|
|
|
|
void setPrecedence(int precedence);
|
|
|
|
juce::String getName();
|
|
|
|
juce::String getId();
|
|
|
|
private:
|
|
|
|
double value = 0.0;
|
|
|
|
double frequency = 1.0;
|
|
|
|
int precedence = -1;
|
2023-03-28 13:33:56 +00:00
|
|
|
int sampleRate = 192000;
|
2023-03-28 12:44:46 +00:00
|
|
|
juce::String name;
|
|
|
|
juce::String id;
|
|
|
|
|
|
|
|
std::unique_ptr<EffectApplication> effectApplication;
|
2023-03-25 20:24:10 +00:00
|
|
|
};
|