26class Rhythm final :
public UnpatchedParam {
28 using UnpatchedParam::UnpatchedParam;
30 [[nodiscard]] int32_t getMinValue()
const override {
return 0; }
31 [[nodiscard]] int32_t getMaxValue()
const override {
return kMaxPresetArpRhythm; }
33 void drawValue()
override { display->setScrollingText(arpRhythmPatternNames[this->getValue()]); }
35 void drawInteger(int32_t textWidth, int32_t textHeight, int32_t yPixel)
override {
38 snprintf(name,
sizeof(name),
"%d: %s", this->getValue(), arpRhythmPatternNames[this->getValue()]);
41 canvas.
drawStringCentred(name, yPixel + OLED_MAIN_TOPMOST_PIXEL, textWidth, textHeight);
44 void renderInHorizontalMenu(int32_t startX, int32_t width, int32_t startY, int32_t height)
override {
47 renderColumnLabel(startX, width, startY);
50 DEF_STACK_STRING_BUF(shortOpt, kShortStringBufferSize);
53 snprintf(name,
sizeof(name),
"%d: %s", this->getValue(), arpRhythmPatternNames[this->getValue()]);
54 shortOpt.append(name);
56 image.drawStringCentered(shortOpt, startX, startY + kTextSpacingY + 4, kTextSpacingX, kTextSpacingY, width);
60 return !soundEditor.editingCVOrMIDIClip() && !soundEditor.editingNonAudioDrumRow();
void drawStringCentred(char const *string, int32_t pixelY, int32_t textWidth, int32_t textHeight, int32_t centrePos=OLED_MAIN_WIDTH_PIXELS/2)
Definition canvas.cpp:190