| @@ -77,6 +77,7 @@ struct Elements : Module { | |||||
| uint16_t reverb_buffer[32768] = {}; | uint16_t reverb_buffer[32768] = {}; | ||||
| elements::Part* part; | elements::Part* part; | ||||
| bool easterEgg = false; | |||||
| Elements() { | Elements() { | ||||
| config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | ||||
| @@ -232,6 +233,10 @@ struct Elements : Module { | |||||
| void setModel(int model) { | void setModel(int model) { | ||||
| part->set_resonator_model((elements::ResonatorModel)model); | part->set_resonator_model((elements::ResonatorModel)model); | ||||
| } | } | ||||
| void setEasterEgg() { | |||||
| part->set_easter_egg(easterEgg); | |||||
| } | |||||
| }; | }; | ||||
| @@ -247,6 +252,18 @@ struct ElementsModalItem : MenuItem { | |||||
| } | } | ||||
| }; | }; | ||||
| struct ElementsEasterEggItem : MenuItem { | |||||
| Elements* elements; | |||||
| void onAction(const event::Action& e) override { | |||||
| elements->easterEgg = !elements->easterEgg; | |||||
| elements->setEasterEgg(); | |||||
| } | |||||
| void step() override { | |||||
| rightText = (elements->easterEgg) ? "✔" : ""; | |||||
| MenuItem::step(); | |||||
| } | |||||
| }; | |||||
| struct ElementsWidget : ModuleWidget { | struct ElementsWidget : ModuleWidget { | ||||
| ElementsWidget(Elements* module) { | ElementsWidget(Elements* module) { | ||||
| @@ -335,6 +352,8 @@ struct ElementsWidget : ModuleWidget { | |||||
| menu->addChild(construct<ElementsModalItem>(&MenuItem::text, "Original", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 0)); | menu->addChild(construct<ElementsModalItem>(&MenuItem::text, "Original", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 0)); | ||||
| menu->addChild(construct<ElementsModalItem>(&MenuItem::text, "Non-linear string", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 1)); | menu->addChild(construct<ElementsModalItem>(&MenuItem::text, "Non-linear string", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 1)); | ||||
| menu->addChild(construct<ElementsModalItem>(&MenuItem::text, "Chords", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 2)); | menu->addChild(construct<ElementsModalItem>(&MenuItem::text, "Chords", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 2)); | ||||
| menu->addChild(new MenuSeparator); | |||||
| menu->addChild(construct<ElementsEasterEggItem>(&MenuItem::text, "Easter egg", &ElementsEasterEggItem::elements, elements)); | |||||
| } | } | ||||
| }; | }; | ||||