transpose gadget revamp
parent
8a7cb67bf3
commit
d3521416f2
|
@ -44,7 +44,7 @@ void Transpose::init() {
|
|||
}
|
||||
|
||||
void Transpose::process() {
|
||||
int off = amount.load();
|
||||
int off = octave.load()*12 + amount.load();
|
||||
|
||||
auto in = std::static_pointer_cast<CommandPort>(port(Port::Input, Port::Command, 0));
|
||||
auto out = std::static_pointer_cast<CommandPort>(port(Port::Output, Port::Command, 0));
|
||||
|
@ -75,16 +75,28 @@ void Transpose::process() {
|
|||
|
||||
void Transpose::saveData(QCborMap& m) const {
|
||||
m[qs("amount")] = QCborValue(amount);
|
||||
m[qs("octave")] = QCborValue(octave);
|
||||
}
|
||||
|
||||
void Transpose::loadData(const QCborMap& m) {
|
||||
auto oct = m.value("octave");
|
||||
if (oct.isUndefined()) { // convert from single value
|
||||
int a = static_cast<int>(m.value("amount").toInteger(0));
|
||||
int s = a < 0 ? -1 : 1;
|
||||
a = std::abs(a);
|
||||
octave = (a-(a%12))/12*s;
|
||||
amount = a%12 * s;
|
||||
return;
|
||||
}
|
||||
octave = static_cast<int>(oct.toInteger(0));
|
||||
amount = static_cast<int>(m.value("amount").toInteger(0));
|
||||
}
|
||||
|
||||
void Transpose::onGadgetCreated() {
|
||||
if (!obj) return;
|
||||
obj->showPluginName = false;
|
||||
auto l = (new LayoutGadget(obj))->setMetrics(12);
|
||||
auto l = (new LayoutGadget(obj))->setMetrics(8, 10);
|
||||
|
||||
(new KnobGadget(l))->bind(amount)->setLabel("Transpose")->setRange(-24, 24, 1);
|
||||
(new KnobGadget(l))->bind(amount)->setLabel("Transpose")->setRange(-12, 12, 1, KnobGadget::MedStep);
|
||||
(new KnobGadget(l))->bind(octave)->setLabel("Octave")->setRange(-5, 5, 1, KnobGadget::BigStep);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
namespace Xybrid::Gadgets {
|
||||
class Transpose : public Data::Node {
|
||||
std::atomic<int> amount = 0;
|
||||
std::atomic<int> octave = 0;
|
||||
public:
|
||||
Transpose();
|
||||
~Transpose() override = default;
|
||||
|
|
|
@ -25,6 +25,7 @@ namespace Xybrid::UI {
|
|||
enum Step : int {
|
||||
NoStep = 1,
|
||||
SmallStep = 3,
|
||||
MedStep = 7,
|
||||
BigStep = 15,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue