![]() |
Deluge Firmware 1.3.0
Build date: 2025.08.10
|
Classes | |
struct | Paging |
Public Types | |
enum | Layout { FIXED , DYNAMIC } |
Public Types inherited from deluge::gui::menu_item::Submenu | |
enum | RenderingStyle { VERTICAL , HORIZONTAL } |
Public Member Functions | |
HorizontalMenu (l10n::String newName, std::span< MenuItem * > newItems, Layout layout) | |
HorizontalMenu (l10n::String newName, std::initializer_list< MenuItem * > newItems, Layout layout) | |
HorizontalMenu (l10n::String newName, l10n::String newTitle, std::initializer_list< MenuItem * > newItems, Layout layout) | |
RenderingStyle | renderingStyle () const override |
ActionResult | buttonAction (hid::Button b, bool on, bool inCardRoutine) override |
Handle an arbitrary button. | |
void | selectEncoderAction (int32_t offset) override |
Handle select encoder movement. | |
void | renderOLED () override |
Root rendering routine for OLED. | |
MenuPermission | checkPermissionToBeginSession (ModControllableAudio *modControllable, int32_t whichThing, MultiRange **currentRange) override |
void | beginSession (MenuItem *navigatedBackwardFrom) override |
Begin an editing session with this menu item. | |
void | endSession () override |
Submenu (l10n::String newName, std::initializer_list< MenuItem * > newItems) | |
Submenu (l10n::String newName, std::span< MenuItem * > newItems) | |
Submenu (l10n::String newName, l10n::String title, std::initializer_list< MenuItem * > newItems) | |
Submenu (l10n::String newName, l10n::String title, std::span< MenuItem * > newItems) | |
Public Member Functions inherited from deluge::gui::menu_item::Submenu | |
Submenu (l10n::String newName, std::initializer_list< MenuItem * > newItems) | |
Submenu (l10n::String newName, std::span< MenuItem * > newItems) | |
Submenu (l10n::String newName, l10n::String title, std::initializer_list< MenuItem * > newItems) | |
Submenu (l10n::String newName, l10n::String title, std::span< MenuItem * > newItems) | |
void | beginSession (MenuItem *navigatedBackwardFrom=nullptr) override |
Begin an editing session with this menu item. | |
void | updateDisplay () |
void | selectEncoderAction (int32_t offset) override |
Handle select encoder movement. | |
MenuItem * | selectButtonPress () final |
Handle a select button press. | |
ActionResult | buttonAction (deluge::hid::Button b, bool on, bool inCardRoutine) override |
Handle an arbitrary button. | |
void | readValueAgain () final |
Re-read the value from the system and redraw the display to match. | |
void | unlearnAction () final |
Unlearn the parameter controlled by this menu. | |
bool | usesAffectEntire () override |
Claim support for Kit AFFECT_ENTIRE editing. | |
bool | allowsLearnMode () final |
Used by SoundEditor to determine if the current menu item can accept MIDI learning. | |
void | learnKnob (MIDICable *cable, int32_t whichKnob, int32_t modKnobMode, int32_t midiChannel) final |
void | learnProgramChange (MIDICable &cable, int32_t channel, int32_t programNumber) override |
bool | learnNoteOn (MIDICable &cable, int32_t channel, int32_t noteCode) final |
Attempt to bind this menu item to a note code. | |
void | renderInHorizontalMenu (int32_t startX, int32_t width, int32_t startY, int32_t height) override |
void | drawPixelsForOled () override |
Paints the pixels below the standard title block. | |
void | drawSubmenuItemsForOled (std::span< MenuItem * > options, const int32_t selectedOption) |
bool | wrapAround () |
Indicates if the menu-like object should wrap-around. Destined to be virtualized. At the moment implements the legacy behaviour of wrapping on 7seg but not on OLED. | |
bool | isSubmenu () override |
virtual bool | focusChild (const MenuItem *child) |
void | updatePadLights () override |
MenuItem * | patchingSourceShortcutPress (PatchSource s, bool previousPressStillActive=false) override |
Action to take when a source shortcut is pressed. | |
deluge::modulation::params::Kind | getParamKind () override |
uint32_t | getParamIndex () override |
int32_t | getColumnSpan () const override |
Get the number of occupied virtual columns in Horizontal menu. | |
bool | showNotification () const override |
Show a popup with the full name and value of the editing parameter at the top of Horizontal menu. | |
Public Member Functions inherited from MenuItem | |
MenuItem (deluge::l10n::String newName, deluge::l10n::String newTitle=deluge::l10n::String::EMPTY_STRING) | |
MenuItem (const MenuItem &other)=delete | |
MenuItem (const MenuItem &&other)=delete | |
MenuItem & | operator= (const MenuItem &other)=delete |
MenuItem & | operator= (const MenuItem &&other)=delete |
virtual void | horizontalEncoderAction (int32_t offset) |
Handle horizontal encoder movement. | |
virtual void | verticalEncoderAction (int32_t offset) |
Handle vertical encoder movement. | |
virtual bool | selectEncoderActionEditsInstrument () |
Used by the sound editor to mark the current instrument as edited when the select encoder is scrolled. | |
virtual ActionResult | timerCallback () |
Handle a TimerName::UI_SPECIFIC event. | |
virtual MenuPermission | checkPermissionToBeginSession (ModControllableAudio *modControllable, int32_t whichThing, MultiRange **currentRange) |
Double-check that this MenuItem will work with the currently selected sound range. | |
virtual void | readCurrentValue () |
Like readValueAgain, but does not redraw. | |
virtual uint8_t | getIndexOfPatchedParamToBlink () |
virtual uint8_t | shouldBlinkPatchingSourceShortcut (PatchSource s, uint8_t *colour) |
virtual void | learnCC (MIDICable &cable, int32_t channel, int32_t ccNumber, int32_t value) |
virtual bool | shouldBlinkLearnLed () |
virtual bool | isRangeDependent () |
Returns true if this parameter is only relevant to some note ranges. | |
virtual std::string_view | getTitle () const |
Get the title to be used when rendering on OLED, both as a deluge::gui::menu_item::Submenu and when displaying ourselves (using the default renderOLED implementation). | |
virtual uint8_t | shouldDrawDotOnName () |
Get the "draw dot state". | |
virtual void | drawName () |
Draw the name we want to use when selecting this in a deluge::gui::menu_item::Submenu to the 7SEG. | |
virtual std::string_view | getName () const |
Get the actual name for use on OLED for deluge::gui::menu_item::Submenu s. | |
virtual bool | isRelevant (ModControllableAudio *modControllable, int32_t whichThing) |
Check if this MenuItem should show up in a containing deluge::gui::menu_item::Submenu. | |
virtual bool | shouldEnterSubmenu () |
Check if selecting this menu item (with select encoder) should enter a submenu. | |
virtual int32_t | getSubmenuItemTypeRenderLength () |
Handle rendering of submenu item types. | |
virtual int32_t | getSubmenuItemTypeRenderIconStart () |
virtual void | renderSubmenuItemTypeForOled (int32_t yPixel) |
virtual void | setupNumberEditor () |
virtual void | updateAutomationViewParameter () |
virtual void | getColumnLabel (StringBuf &label) |
virtual bool | showColumnLabel () const |
Show a label for the parameter in Horizontal menu. | |
virtual bool | allowToBeginSessionFromHorizontalMenu () |
Allow entering menu session by selecting the menu item twice in Horizontal menu. | |
virtual void | getNotificationValue (StringBuf &valueBuf) |
Get the parameter value string to show in the popup. |
Protected Member Functions | |
virtual void | renderMenuItems (std::span< MenuItem * > items, const MenuItem *currentItem) |
virtual Paging & | preparePaging (std::span< MenuItem * > items, const MenuItem *currentItem) |
virtual void | handleInstrumentButtonPress (std::span< MenuItem * > visiblePageItems, const MenuItem *previous, int32_t pressedButtonPosition) |
virtual void | selectMenuItem (int32_t pageNumber, int32_t itemPos) |
virtual void | switchVisiblePage (int32_t direction) |
virtual void | switchHorizontalMenu (int32_t direction, std::span< HorizontalMenu *const > chain, bool forceSelectFirstItem=false) |
Protected Attributes | |
Paging | paging |
Layout | layout {DYNAMIC} |
int32_t | lastSelectedItemPosition {kNoSelection} |
std::optional< std::span< HorizontalMenu *const > > | chain {std::nullopt} |
Protected Attributes inherited from deluge::gui::menu_item::Submenu | |
uint32_t | initial_index_ = 0 |
deluge::vector< MenuItem * > | items |
decltype(items) ::iterator | current_item_ |
Static Private Member Functions | |
static void | handleItemAction (MenuItem *menuItem) |
static void | displayNotification (MenuItem *menuItem) |
static void | renderPageCounters (const Paging &paging) |
static void | renderColumnLabel (MenuItem *menuItem, int32_t labelY, int32_t slotStartX, int32_t slotWidth, bool isSelected) |
Private Attributes | |
double | currentKnobSpeed {0.0} |
Friends | |
class | HorizontalMenuCombined |
Additional Inherited Members | |
static void | drawItemsForOled (std::span< std::string_view > options, int32_t selectedOption, int32_t offset=0) |
Internal helper which can draw the standard deluge::gui::menu_item::Submenu layout. | |
deluge::l10n::String | title |
Can get overridden by getTitle(). Actual max num chars for OLED display is 14. | |
const deluge::l10n::String | name |
Default name for use on OLED for deluge::gui::menu_item::Submenu s. | |
deluge::gui::menu_item::Submenu * | parent {nullptr} |
|
overridevirtual |
Begin an editing session with this menu item.
Should make sure the menu's internal state matches the system and redraw the display.
Reimplemented from MenuItem.
Reimplemented in deluge::gui::menu_item::HorizontalMenuCombined, deluge::gui::menu_item::submenu::ReverbSidechain, and deluge::gui::menu_item::submenu::Sidechain.
|
overridevirtual |
Handle an arbitrary button.
The returned result is forwarded up the View stack, so returning ActionResult::DEALT_WITH will suppress buttons going to the current View.
This is called with (b == SELECT_ENC && on) immediately after the menu is entered, or after selectButtonPress is called and returns NO_NAVIGATION.
Reimplemented from MenuItem.
|
overridevirtual |
when exiting a horizontal menu, turn off the LED's and reset selected horizontal menu item position so that next time you open a horizontal menu, it refreshes the LED for the selected horizontal menu item
Reimplemented from MenuItem.
|
overridevirtual |
Reimplemented from deluge::gui::menu_item::Submenu.
|
overridevirtual |
Root rendering routine for OLED.
If you want a title, you probably want to override drawPixelsForOled instead or you will need to paint the title yourself. Uses the title from getTitle() when rendering.
Reimplemented from MenuItem.
|
overridevirtual |
Handle select encoder movement.
Child classes which override this should be careful to handle offsets larger than 1, as holding shift and scrolling will increase them.
Reimplemented from MenuItem.
Reimplemented in deluge::gui::menu_item::HorizontalMenuCombined.