31 using Selection::Selection;
32 void readCurrentValue()
override { this->setValue(soundEditor.currentArpSettings->octaveMode); }
35 void writeCurrentValue()
override {
36 auto current_value = this->getValue<ArpOctaveMode>();
39 if (currentUIMode == UI_MODE_HOLDING_AFFECT_ENTIRE_IN_SOUND_EDITOR && soundEditor.editingKitRow()) {
41 Kit* kit = getCurrentKit();
43 for (
Drum* thisDrum = kit->firstDrum; thisDrum !=
nullptr; thisDrum = thisDrum->next) {
45 if (thisDrum->type != DrumType::GATE) {
46 thisDrum->arpSettings.octaveMode = current_value;
47 thisDrum->arpSettings.updatePresetFromCurrentSettings();
48 thisDrum->arpSettings.flagForceArpRestart =
true;
54 soundEditor.currentArpSettings->octaveMode = current_value;
55 soundEditor.currentArpSettings->updatePresetFromCurrentSettings();
56 soundEditor.currentArpSettings->flagForceArpRestart =
true;
61 return !soundEditor.editingGateDrumRow() && !soundEditor.editingKitAffectEntire();
64 label.append(deluge::l10n::get(deluge::l10n::built_in::seven_segment, this->name));
67 deluge::vector<std::string_view> getOptions(OptType optType)
override {
68 using enum l10n::String;
69 if (optType == OptType::SHORT) {
71 l10n::getView(l10n::built_in::seven_segment, STRING_FOR_UP),
72 l10n::getView(l10n::built_in::seven_segment, STRING_FOR_DOWN),
73 l10n::getView(l10n::built_in::seven_segment, STRING_FOR_UP_DOWN),
74 l10n::getView(l10n::built_in::seven_segment, STRING_FOR_ALTERNATE),
75 l10n::getView(l10n::built_in::seven_segment, STRING_FOR_RANDOM),
79 l10n::getView(STRING_FOR_UP),
80 l10n::getView(STRING_FOR_DOWN),
81 l10n::getView(STRING_FOR_UP_DOWN),
82 l10n::getView(STRING_FOR_ALTERNATE),
83 l10n::getView(STRING_FOR_RANDOM),