commit 101ffd929b227912611717b832569980f1c0353d
parent 9a67490c4018c998bf8bca025a028805d14b9973
Author: Oli Larkin <olilarkin@googlemail.com>
Date: Mon, 22 May 2023 14:35:01 +0200
Update NAMKnobControl for new background
Diffstat:
6 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/NeuralAmpModeler/NeuralAmpModeler.cpp b/NeuralAmpModeler/NeuralAmpModeler.cpp
@@ -99,8 +99,7 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info)
auto leftArrowSVG = pGraphics->LoadSVG(LEFT_ARROW_FN);
const IBitmap irSwitchBitmap = pGraphics->LoadBitmap((TOGGLEIR_FN), 2, true);
const IBitmap switchHandleBitmap = pGraphics->LoadBitmap((TOGGLE_HANDLE_FN), true);
- const IBitmap knobRotateBitmap = pGraphics->LoadBitmap(KNOB_FN);
-
+ const IBitmap knobBackground = pGraphics->LoadBitmap(KNOBBACKGROUND_FN);
const IRECT b = pGraphics->GetBounds();
const IRECT mainArea = b.GetPadded(-20);
const auto content = mainArea.GetPadded(-10);
@@ -113,9 +112,8 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info)
// Areas for knobs
const float knobsExtraSpaceBelowTitle = 25.0f;
- const float knobHalfHeight = 70.0f;
- const float knobHeight = 2.0f * knobHalfHeight;
- const float singleKnobPad = 12.0f;
+ const float knobHeight = 120.f;
+ const float singleKnobPad = -2.0f;
const auto knobs = content.GetFromTop(knobHeight)
.GetReducedFromLeft(allKnobsPad)
.GetReducedFromRight(allKnobsPad)
@@ -123,7 +121,7 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info)
const IRECT inputKnobArea = knobs.GetGridCell(0, kInputLevel, 1, numKnobs).GetPadded(-singleKnobPad);
const IRECT noiseGateArea = knobs.GetGridCell(0, kNoiseGateThreshold, 1, numKnobs).GetPadded(-singleKnobPad);
const IRECT bassKnobArea = knobs.GetGridCell(0, kToneBass, 1, numKnobs).GetPadded(-singleKnobPad);
- const IRECT middleKnobArea = knobs.GetGridCell(0, kToneMid, 1, numKnobs).GetPadded(-singleKnobPad);
+ const IRECT midKnobArea = knobs.GetGridCell(0, kToneMid, 1, numKnobs).GetPadded(-singleKnobPad);
const IRECT trebleKnobArea = knobs.GetGridCell(0, kToneTreble, 1, numKnobs).GetPadded(-singleKnobPad);
const IRECT outputKnobArea = knobs.GetGridCell(0, kOutputLevel, 1, numKnobs).GetPadded(-singleKnobPad);
@@ -221,16 +219,13 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info)
pGraphics->AttachControl(new NAMSwitchControl(outNormToggleArea, kOutNorm, "Normalize", style, switchHandleBitmap), kCtrlTagOutNorm);
// The knobs
- pGraphics->AttachControl(new NAMKnobControl(inputKnobArea, kInputLevel, "", style, knobRotateBitmap));
- pGraphics->AttachControl(new NAMKnobControl(noiseGateArea, kNoiseGateThreshold, "", style, knobRotateBitmap));
- pGraphics->AttachControl(new NAMKnobControl(bassKnobArea, kToneBass, "", style, knobRotateBitmap), -1, "EQ_KNOBS");
- pGraphics->AttachControl(new NAMKnobControl(middleKnobArea, kToneMid, "", style, knobRotateBitmap), -1, "EQ_KNOBS");
+ pGraphics->AttachControl(new NAMKnobControl(inputKnobArea, kInputLevel, "", style, knobBackground));
+ pGraphics->AttachControl(new NAMKnobControl(noiseGateArea, kNoiseGateThreshold, "", style, knobBackground));
+ pGraphics->AttachControl(new NAMKnobControl(bassKnobArea, kToneBass, "", style, knobBackground), -1, "EQ_KNOBS");
+ pGraphics->AttachControl(new NAMKnobControl(midKnobArea, kToneMid, "", style, knobBackground), -1, "EQ_KNOBS");
pGraphics->AttachControl(
- new NAMKnobControl(trebleKnobArea, kToneTreble, "", style, knobRotateBitmap), -1, "EQ_KNOBS");
- pGraphics->AttachControl(new NAMKnobControl(outputKnobArea, kOutputLevel, "", style, knobRotateBitmap));
-
- // toggle IR on / off
- pGraphics->AttachControl(new IBSwitchControl(irBypassToggleArea, irSwitchBitmap, kIRToggle));
+ new NAMKnobControl(trebleKnobArea, kToneTreble, "", style, knobBackground), -1, "EQ_KNOBS");
+ pGraphics->AttachControl(new NAMKnobControl(outputKnobArea, kOutputLevel, "", style, knobBackground));
// The meters
const float meterMin = -90.0f;
diff --git a/NeuralAmpModeler/NeuralAmpModelerControls.h b/NeuralAmpModeler/NeuralAmpModelerControls.h
@@ -46,19 +46,19 @@ public:
: IVKnobControl(bounds, paramIdx, label, style, true)
, IBitmapBase(bitmap)
{
- mInnerPointerFrac = 0.6;
+ mInnerPointerFrac = 0.55;
}
void DrawWidget(IGraphics& g) override
{
- float widgetRadius = GetRadius();
- const float cx = mWidgetBounds.MW(), cy = mWidgetBounds.MH();
- IRECT knobHandleBounds = mWidgetBounds.GetCentredInside((widgetRadius - mTrackToHandleDistance) * 2.5f);
+ float widgetRadius = GetRadius() * 0.73;
+ auto knobRect = mWidgetBounds.GetCentredInside(mWidgetBounds.W(), mWidgetBounds.W());
+ const float cx = knobRect.MW(), cy = knobRect.MH();
const float angle = mAngle1 + (static_cast<float>(GetValue()) * (mAngle2 - mAngle1));
- DrawIndicatorTrack(g, angle, cx, cy, widgetRadius);
- g.DrawBitmap(mBitmap, knobHandleBounds.GetTranslated(4, 3), 0, 0);
+ DrawIndicatorTrack(g, angle, cx+0.5, cy, widgetRadius);
+ g.DrawFittedBitmap(mBitmap, knobRect);
float data[2][2];
- RadialPoints(angle, cx + 1, cy, mInnerPointerFrac * widgetRadius, mInnerPointerFrac * widgetRadius, 2, data);
+ RadialPoints(angle, cx, cy, mInnerPointerFrac * widgetRadius, mInnerPointerFrac * widgetRadius, 2, data);
g.PathCircle(data[1][0], data[1][1], 3);
g.PathFill(IPattern::CreateRadialGradient(data[1][0], data[1][1], 4.0f,
{{GetColor(mMouseIsOver ? kX3 : kX1), 0.f},
diff --git a/NeuralAmpModeler/config.h b/NeuralAmpModeler/config.h
@@ -77,6 +77,9 @@
#define BACKGROUND_FN "Background.jpg"
#define BACKGROUND2X_FN "Background@2x.jpg"
#define BACKGROUND3X_FN "Background@3x.jpg"
+#define KNOBBACKGROUND_FN "KnobBackground.png"
+#define KNOBBACKGROUND2X_FN "KnobBackground@2x.png"
+#define KNOBBACKGROUND3X_FN "KnobBackground@3x.png"
// Issue 291
// On the macOS standalone, we might not have permissions to traverse the file directory, so we have the app ask the
diff --git a/NeuralAmpModeler/resources/img/KnobBackground.png b/NeuralAmpModeler/resources/img/KnobBackground.png
Binary files differ.
diff --git a/NeuralAmpModeler/resources/img/KnobBackground@2x.png b/NeuralAmpModeler/resources/img/KnobBackground@2x.png
Binary files differ.
diff --git a/NeuralAmpModeler/resources/img/KnobBackground@3x.png b/NeuralAmpModeler/resources/img/KnobBackground@3x.png
Binary files differ.