26class Transpose : 
public Decimal, 
public PatchedParam {
 
   28    Transpose(l10n::String newName, int32_t newP = 0) : 
Decimal(newName), PatchedParam(newP) {}
 
   30    Transpose(l10n::String newName, l10n::String 
title, int32_t newP = 0)
 
   34    [[nodiscard]] int32_t getMinValue() const final { 
return -9600; }
 
   35    [[nodiscard]] int32_t getMaxValue() const final { 
return 9600; }
 
   36    [[nodiscard]] int32_t getNumDecimalPlaces() const final { 
return 2; }
 
   37    uint32_t 
getParamIndex() final { 
return PatchedParam::getParamIndex(); }
 
   40    void drawValue() final { Decimal::drawValue(); }
 
   43        return PatchedParam::shouldBlinkPatchingSourceShortcut(s, colour);
 
 
   46        return PatchedParam::patchingSourceShortcutPress(s, previousPressStillActive);
 
 
   50    bool allowsLearnMode() final { 
return MenuItemWithCCLearning::allowsLearnMode(); }
 
   51    void learnKnob(
::MIDICable* cable, int32_t whichKnob, int32_t modKnobMode, int32_t midiChannel) 
final {
 
   52        MenuItemWithCCLearning::learnKnob(cable, whichKnob, modKnobMode, midiChannel);