51 lines
983 B
C++
51 lines
983 B
C++
#pragma once
|
|
|
|
#include <tt_hal_radio.h>
|
|
|
|
#include "Str.h"
|
|
|
|
class Preset {
|
|
struct PresetItem {
|
|
RadioParameter parameter;
|
|
float value;
|
|
PresetItem* next = nullptr;
|
|
};
|
|
|
|
Str name;
|
|
Modulation modulation;
|
|
PresetItem* first = nullptr;
|
|
PresetItem* last = nullptr;
|
|
public:
|
|
Preset(const char* const name, Modulation modulation)
|
|
: name(name)
|
|
, modulation(modulation)
|
|
{}
|
|
|
|
virtual ~Preset() {
|
|
PresetItem* n = first;
|
|
while(n) {
|
|
auto next = n->next;
|
|
delete n;
|
|
n = next;
|
|
}
|
|
}
|
|
|
|
void addParameter(RadioParameter parameter, float value) {
|
|
auto node = new PresetItem;
|
|
node->parameter = parameter;
|
|
node->value = value;
|
|
|
|
if (last) {
|
|
last->next = node;
|
|
last = node;
|
|
} else {
|
|
first = node;
|
|
last = node;
|
|
}
|
|
}
|
|
|
|
PresetItem* first() {
|
|
return first;
|
|
}
|
|
};
|