diff --git a/NeuralAmpModeler/NeuralAmpModeler.cpp b/NeuralAmpModeler/NeuralAmpModeler.cpp index 588376ee..bbb7d3e7 100644 --- a/NeuralAmpModeler/NeuralAmpModeler.cpp +++ b/NeuralAmpModeler/NeuralAmpModeler.cpp @@ -5,6 +5,7 @@ #include #include "Colors.h" +#include "IControls.h" #include "NeuralAmpModelerCore/NAM/activations.h" // clang-format off // These includes need to happen in this order or else the latter won't know @@ -48,12 +49,6 @@ const IVStyle style = DEFAULT_WIDGET_FRAC, DEFAULT_WIDGET_ANGLE}; -const IVStyle titleStyle = -DEFAULT_STYLE -.WithValueText(IText(24, COLOR_WHITE, "Ronduit-Light")) -.WithDrawFrame(false) -.WithShadowOffset(2.f); - NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) : Plugin(info, MakeConfig(kNumParams, kNumPresets)) { @@ -85,72 +80,93 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) mLayoutFunc = [&](IGraphics* pGraphics) { pGraphics->AttachCornerResizer(EUIResizerMode::Scale, false); pGraphics->AttachTextEntryControl(); + pGraphics->AttachPanelBackground(COLOR_BLACK); pGraphics->EnableMouseOver(true); pGraphics->EnableTooltips(true); - + auto helpSVG = pGraphics->LoadSVG(HELP_FN); + auto fileSVG = pGraphics->LoadSVG(FILE_FN); + auto closeButtonSVG = pGraphics->LoadSVG(CLOSE_BUTTON_FN); + auto rightArrowSVG = pGraphics->LoadSVG(RIGHT_ARROW_FN); + auto leftArrowSVG = pGraphics->LoadSVG(LEFT_ARROW_FN); + const IBitmap irSwitchBitmap = pGraphics->LoadBitmap((TOGGLEIR_FN), 2, true); + const IBitmap switchBitmap = pGraphics->LoadBitmap((TOGGLE_FN), true); + const IBitmap switchHandleBitmap = pGraphics->LoadBitmap((TOGGLE_HANDLE_FN), true); + const IBitmap knobRotateBitmap = pGraphics->LoadBitmap(KNOB_FN); pGraphics->LoadFont("Roboto-Regular", ROBOTO_FN); - pGraphics->LoadFont("Ronduit-Light", RONDUIT_FN); - - const auto helpSVG = pGraphics->LoadSVG(HELP_FN); - const auto fileSVG = pGraphics->LoadSVG(FILE_FN); - const auto crossSVG = pGraphics->LoadSVG(CLOSE_BUTTON_FN); - const auto rightArrowSVG = pGraphics->LoadSVG(RIGHT_ARROW_FN); - const auto leftArrowSVG = pGraphics->LoadSVG(LEFT_ARROW_FN); - const auto modelIconSVG = pGraphics->LoadSVG(MODEL_ICON_FN); - const auto irIconOnSVG = pGraphics->LoadSVG(IR_ICON_ON_FN); - const auto irIconOffSVG = pGraphics->LoadSVG(IR_ICON_OFF_FN); - - const auto backgroundBitmap = pGraphics->LoadBitmap(BACKGROUND_FN); - const auto fileBackgroundBitmap = pGraphics->LoadBitmap(FILEBACKGROUND_FN); - const auto linesBitmap = pGraphics->LoadBitmap(LINES_FN); - const auto knobBackgroundBitmap = pGraphics->LoadBitmap(KNOBBACKGROUND_FN); - const auto switchHandleBitmap = pGraphics->LoadBitmap(SLIDESWITCHHANDLE_FN); - const auto meterBackgroundBitmap = pGraphics->LoadBitmap(METERBACKGROUND_FN); - - const auto b = pGraphics->GetBounds(); - const auto mainArea = b.GetPadded(-20); - const auto contentArea = mainArea.GetPadded(-10); - const auto titleHeight = 50.0f; - const auto titleArea = contentArea.GetFromTop(titleHeight); + const IRECT b = pGraphics->GetBounds(); + const IRECT mainArea = b.GetPadded(-20); + const auto content = mainArea.GetPadded(-10); + const float titleHeight = 50.0f; + + // Area for the Noise gate knob + const float allKnobsHalfPad = 10.0f; + const float allKnobsPad = 2.0f * allKnobsHalfPad; // Areas for knobs - const auto knobsPad = 20.0f; - const auto knobsExtraSpaceBelowTitle = 25.0f; - const auto knobHeight = 120.f; - const auto singleKnobPad = -2.0f; - const auto knobsArea = contentArea.GetFromTop(knobHeight) - .GetReducedFromLeft(knobsPad) - .GetReducedFromRight(knobsPad) - .GetVShifted(titleHeight + knobsExtraSpaceBelowTitle); - const auto inputKnobArea = knobsArea.GetGridCell(0, kInputLevel, 1, numKnobs).GetPadded(-singleKnobPad); - const auto noiseGateArea = knobsArea.GetGridCell(0, kNoiseGateThreshold, 1, numKnobs).GetPadded(-singleKnobPad); - const auto bassKnobArea = knobsArea.GetGridCell(0, kToneBass, 1, numKnobs).GetPadded(-singleKnobPad); - const auto midKnobArea = knobsArea.GetGridCell(0, kToneMid, 1, numKnobs).GetPadded(-singleKnobPad); - const auto trebleKnobArea = knobsArea.GetGridCell(0, kToneTreble, 1, numKnobs).GetPadded(-singleKnobPad); - const auto outputKnobArea = knobsArea.GetGridCell(0, kOutputLevel, 1, numKnobs).GetPadded(-singleKnobPad); - - const auto ngToggleArea = noiseGateArea.GetVShifted(noiseGateArea.H()).SubRectVertical(2, 0).GetReducedFromTop(10.0f); - const auto eqToggleArea = midKnobArea.GetVShifted(midKnobArea.H()).SubRectVertical(2, 0).GetReducedFromTop(10.0f); - const auto outNormToggleArea = outputKnobArea.GetVShifted(midKnobArea.H()).SubRectVertical(2, 0).GetReducedFromTop(10.0f); + const float knobsExtraSpaceBelowTitle = 25.0f; + const float knobHalfHeight = 70.0f; + const float knobHeight = 2.0f * knobHalfHeight; + const float singleKnobPad = 12.0f; + const auto knobs = content.GetFromTop(knobHeight) + .GetReducedFromLeft(allKnobsPad) + .GetReducedFromRight(allKnobsPad) + .GetTranslated(0.0f, titleHeight + knobsExtraSpaceBelowTitle); + 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 trebleKnobArea = knobs.GetGridCell(0, kToneTreble, 1, numKnobs).GetPadded(-singleKnobPad); + const IRECT outputKnobArea = knobs.GetGridCell(0, kOutputLevel, 1, numKnobs).GetPadded(-singleKnobPad); + + const float toggleHeight = 40.0f; + // Area for noise gate toggle + const float ngAreaHeight = toggleHeight; + const IRECT ngToggleArea = + noiseGateArea.GetFromBottom(ngAreaHeight).GetTranslated(-10.f, ngAreaHeight + singleKnobPad - 14.f); + // Area for EQ toggle + const float eqAreaHeight = toggleHeight; + const float eqAreaHalfWidth = 0.5f * middleKnobArea.W(); + const IRECT eqToggleArea = middleKnobArea.GetFromBottom(eqAreaHeight) + .GetTranslated(-10.f, eqAreaHeight + singleKnobPad - 14.f) + .GetMidHPadded(eqAreaHalfWidth); + + // Area for output normalization toggle + const float outNormAreaHeight = toggleHeight; + const float outNormAreaHalfWidth = 0.5f * outputKnobArea.W(); + const IRECT outNormToggleArea = outputKnobArea.GetFromBottom(outNormAreaHeight) + .GetTranslated(-10.f, outNormAreaHeight + singleKnobPad - 14.f) + .GetMidHPadded(outNormAreaHalfWidth); + + // Area for IR bypass toggle + const float irBypassToggleX = 46.f; + const float irBypassToggleY = 343.f; + const IRECT irBypassToggleArea = IRECT(irBypassToggleX, irBypassToggleY, irSwitchBitmap); // Areas for model and IR - const auto fileWidth = 200.0f; - const auto fileHeight = 30.0f; - const auto irYOffset = 38.0f; - const auto modelArea = contentArea.GetFromBottom((2.0f * fileHeight)) + const float fileWidth = 200.0f; + const float fileHeight = 30.0f; + const float fileYSpace = 8.0f; + const float irYOffset = 38.0f; + const IRECT modelArea = content.GetFromBottom((2.0f * fileHeight) + fileYSpace) .GetFromTop(fileHeight) .GetMidHPadded(fileWidth) - .GetVShifted(-1); - const auto modelIconArea = modelArea.GetFromLeft(30).GetTranslated(-40, 10); - const auto irArea = modelArea.GetVShifted(irYOffset); - const auto irSwitchArea = irArea.GetFromLeft(30).GetHShifted(-40).GetScaledAboutCentre(0.6); - + .GetTranslated(0.0f, -1); + const IRECT irArea = modelArea.GetTranslated(0.0f, irYOffset); + // Areas for meters - const auto inputMeterArea = contentArea.GetFromLeft(30).GetHShifted(-20).GetMidVPadded(100).GetVShifted(-25); - const auto outputMeterArea = contentArea.GetFromRight(30).GetHShifted(20).GetMidVPadded(100).GetVShifted(-25); - - // Misc Areas - const auto helpButtonArea = mainArea.GetFromTRHC(50, 50).GetCentredInside(20, 20); + const float meterHalfHeight = 0.5f * 385.0f; + const IRECT inputMeterArea = inputKnobArea.GetFromLeft(allKnobsHalfPad) + .GetMidHPadded(allKnobsHalfPad) + .GetMidVPadded(meterHalfHeight) + .GetTranslated(-allKnobsPad - 18.f, 0.0f); + const IRECT outputMeterArea = outputKnobArea.GetFromRight(allKnobsHalfPad) + .GetMidHPadded(allKnobsHalfPad) + .GetMidVPadded(meterHalfHeight) + .GetTranslated(allKnobsPad + 18.f, 0.0f); + + auto themeBG = pGraphics->LoadBitmap(EH_SKIN_FN); + pGraphics->AttachControl(new IBitmapControl(pGraphics->GetBounds(), themeBG, kNoParameter)) + ->SetBlend(IBlend(EBlend::Default, 1.0)); // Model loader button auto loadModelCompletionHandler = [&](const WDL_String& fileName, const WDL_String& path) { @@ -191,11 +207,6 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) } }; - pGraphics->AttachBackground(BACKGROUND_FN); - pGraphics->AttachControl(new IBitmapControl(b, linesBitmap)); - pGraphics->AttachControl(new IVLabelControl(titleArea, "Neural Amp Modeler", titleStyle)); - pGraphics->AttachControl(new ISVGControl(modelIconArea, modelIconSVG)); - #ifdef NAM_PICK_DIRECTORY const std::string defaultNamFileString = "Select model directory..."; const std::string defaultIRString = "Select IR directory..."; @@ -205,45 +216,125 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) #endif pGraphics->AttachControl(new NAMFileBrowserControl(modelArea, kMsgTagClearModel, defaultNamFileString.c_str(), "nam", loadModelCompletionHandler, style, fileSVG, - crossSVG, leftArrowSVG, rightArrowSVG, fileBackgroundBitmap), + closeButtonSVG, leftArrowSVG, rightArrowSVG), kCtrlTagModelFileBrowser); - pGraphics->AttachControl(new ISVGSwitchControl(irSwitchArea, { irIconOffSVG, irIconOnSVG}, kIRToggle)); - pGraphics->AttachControl(new NAMFileBrowserControl(irArea, kMsgTagClearModel, defaultIRString.c_str(), "wav", - loadIRCompletionHandler, style, - fileSVG, crossSVG, leftArrowSVG, rightArrowSVG, fileBackgroundBitmap), - kCtrlTagIRFileBrowser); - pGraphics->AttachControl(new NAMSwitchControl(ngToggleArea, kNoiseGateActive, " ", style, switchHandleBitmap)); - pGraphics->AttachControl(new NAMSwitchControl(eqToggleArea, kEQActive, "EQ", style, switchHandleBitmap)); - pGraphics->AttachControl(new NAMSwitchControl(outNormToggleArea, kOutNorm, "Normalize", style, switchHandleBitmap), kCtrlTagOutNorm); + pGraphics->AttachControl( + new NAMFileBrowserControl(irArea, kMsgTagClearIR, defaultIRString.c_str(), "wav", loadIRCompletionHandler, style, + fileSVG, closeButtonSVG, leftArrowSVG, rightArrowSVG), + kCtrlTagIRFileBrowser); + + // TODO all these magic numbers + pGraphics->AttachControl(new NAMSwitchControl( + ngToggleArea.GetFromTop(60.f).GetPadded(-20.f), kNoiseGateActive, "", style, switchBitmap, switchHandleBitmap)); + pGraphics->AttachControl(new NAMSwitchControl( + eqToggleArea.GetFromTop(60.f).GetPadded(-20.f), kEQActive, "", style, switchBitmap, switchHandleBitmap)); + pGraphics->AttachControl(new NAMSwitchControl(outNormToggleArea.GetFromTop(32.f).GetPadded(-20.f), kOutNorm, "", + style, switchBitmap, switchHandleBitmap), + kCtrlTagOutNorm); + // Get those labels on + { + const float labelNudgeX = 11.f; + const float labelNudgeY = 15.f; + pGraphics->AttachControl( + new ITextControl(eqToggleArea.GetFromTop(70.f).GetTranslated(labelNudgeX, labelNudgeY), "EQ", style.labelText)); + pGraphics->AttachControl(new ITextControl( + outNormToggleArea.GetFromTop(70.f).GetTranslated(labelNudgeX, labelNudgeY), "Normalize", style.labelText)); + } // The knobs - pGraphics->AttachControl(new NAMKnobControl(inputKnobArea, kInputLevel, "", style, knobBackgroundBitmap)); - pGraphics->AttachControl(new NAMKnobControl(noiseGateArea, kNoiseGateThreshold, "", style, knobBackgroundBitmap)); - pGraphics->AttachControl(new NAMKnobControl(bassKnobArea, kToneBass, "", style, knobBackgroundBitmap), -1, "EQ_KNOBS"); - pGraphics->AttachControl(new NAMKnobControl(midKnobArea, kToneMid, "", style, knobBackgroundBitmap), -1, "EQ_KNOBS"); - pGraphics->AttachControl(new NAMKnobControl(trebleKnobArea, kToneTreble, "", style, knobBackgroundBitmap), -1, "EQ_KNOBS"); - pGraphics->AttachControl(new NAMKnobControl(outputKnobArea, kOutputLevel, "", style, knobBackgroundBitmap)); + 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(trebleKnobArea, kToneTreble, "", style, knobRotateBitmap), -1, "EQ_KNOBS"); + pGraphics->AttachControl(new NAMKnobControl(outputKnobArea, kOutputLevel, "", style, knobRotateBitmap)); - // The meters - pGraphics->AttachControl(new NAMMeterControl(inputMeterArea, meterBackgroundBitmap, style), kCtrlTagInputMeter); - pGraphics->AttachControl(new NAMMeterControl(outputMeterArea, meterBackgroundBitmap, style), kCtrlTagOutputMeter); + // toggle IR on / off + pGraphics->AttachControl(new IBSwitchControl(irBypassToggleArea, irSwitchBitmap, kIRToggle)); - // Help/about box - pGraphics->AttachControl(new NAMCircleButtonControl(helpButtonArea, + // The meters + const float meterMin = -90.0f; + const float meterMax = -0.01f; + pGraphics + ->AttachControl( + new IVPeakAvgMeterControl(inputMeterArea, "", + style.WithWidgetFrac(0.5).WithShowValue(false).WithDrawFrame(false).WithColor( + kFG, PluginColors::NAM_THEMECOLOR.WithOpacity(0.4f)), + EDirection::Vertical, {}, 0, meterMin, meterMax, {}), + kCtrlTagInputMeter) + ->As>() + ->SetPeakSize(2.0f); + pGraphics + ->AttachControl( + new IVPeakAvgMeterControl(outputMeterArea, "", + style.WithWidgetFrac(0.5).WithShowValue(false).WithDrawFrame(false).WithColor( + kFG, PluginColors::NAM_THEMECOLOR.WithOpacity(0.4f)), + EDirection::Vertical, {}, 0, meterMin, meterMax, {}), + kCtrlTagOutputMeter) + ->As>() + ->SetPeakSize(2.0f); + + // Help/about box + pGraphics->AttachControl(new NAMCircleButtonControl( + mainArea.GetFromTRHC(50, 50).GetCentredInside(20, 20), [pGraphics](IControl* pCaller) { - pGraphics->GetControlWithTag(kCtrlTagAboutBox)->As()->HideAnimated(false); + pGraphics->GetControlWithTag(kCtrlTagAboutBox)->As()->HideAnimated(false); }, helpSVG)); - pGraphics->AttachControl(new NAMAboutBoxControl(b, backgroundBitmap, style), kCtrlTagAboutBox)->Hide(true); + pGraphics + ->AttachControl( + new IAboutBoxControl( + b, COLOR_GRAY, + // AttachFunc + [](IContainerBase* pParent, const IRECT& r) { + pParent->AddChildControl(new IPanelControl( + IRECT(), + IPattern::CreateLinearGradient( + r, EDirection::Vertical, {{PluginColors::NAM_THEMEFONTCOLOR, 0.f}, {PluginColors::NAM_0, 1.f}}))); + + pParent->AddChildControl(new IVPanelControl(IRECT(), "", + style.WithColor(kFR, PluginColors::NAM_1.WithOpacity(0.9f)) + .WithColor(kFG, PluginColors::NAM_1.WithOpacity(0.9f)))); + + pParent->AddChildControl(new IVLabelControl( + IRECT(), "Neural Amp Modeler", + style.WithDrawFrame(false).WithValueText({30, EAlign::Center, PluginColors::HELP_TEXT}))); + + WDL_String versionStr{"Version "}; + versionStr.Append(PLUG_VERSION_STR); + pParent->AddChildControl(new IVLabelControl( + IRECT(), versionStr.Get(), + style.WithDrawFrame(false).WithValueText({DEFAULT_TEXT_SIZE, EAlign::Center, PluginColors::HELP_TEXT}))); + pParent->AddChildControl(new IVLabelControl( + IRECT(), "By Steven Atkinson", + style.WithDrawFrame(false).WithValueText({DEFAULT_TEXT_SIZE, EAlign::Center, PluginColors::HELP_TEXT}))); + pParent->AddChildControl(new IURLControl(IRECT(), "Train your own model", + "https://github.com/sdatkinson/neural-amp-modeler", + {DEFAULT_TEXT_SIZE, PluginColors::HELP_TEXT})); + }, + // ResizeFunc + [](IContainerBase* pParent, const IRECT& r) { + const IRECT mainArea = r.GetPadded(-20); + const auto content = mainArea.GetPadded(-10); + const auto titleLabel = content.GetFromTop(50); + pParent->GetChild(0)->SetTargetAndDrawRECTs(r); + pParent->GetChild(1)->SetTargetAndDrawRECTs(mainArea); + pParent->GetChild(2)->SetTargetAndDrawRECTs(titleLabel); + pParent->GetChild(3)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H())); + pParent->GetChild(4)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 20)); + pParent->GetChild(5)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 40)); + }, + // Animation Time + 0), + kCtrlTagAboutBox) + ->Hide(true); pGraphics->ForAllControlsFunc([](IControl* pControl) { pControl->SetMouseEventsWhenDisabled(true); pControl->SetMouseOverWhenDisabled(true); }); - - pGraphics->GetControlWithTag(kCtrlTagOutNorm)->SetMouseEventsWhenDisabled(false); - }; } @@ -435,29 +526,6 @@ bool NeuralAmpModeler::OnMessage(int msgTag, int ctrlTag, int dataSize, const vo { case kMsgTagClearModel: mShouldRemoveModel = true; return true; case kMsgTagClearIR: mShouldRemoveIR = true; return true; - case kMsgTagHighlightColor: - { - mHighLightColor.Set((const char*) pData); - - if (GetUI()) - { - GetUI()->ForStandardControlsFunc([&](IControl* pControl){ - - if (auto* pVectorBase = pControl->As()) - { - IColor color = IColor::FromColorCodeStr(mHighLightColor.Get()); - - pVectorBase->SetColor(kX1, color); - pVectorBase->SetColor(kPR, color.WithOpacity(0.3f)); - pVectorBase->SetColor(kFR, color.WithOpacity(0.4f)); - pVectorBase->SetColor(kX3, color.WithContrast(0.1f)); - } - pControl->GetUI()->SetAllControlsDirty(); - }); - } - - return true; - } default: return false; } } diff --git a/NeuralAmpModeler/NeuralAmpModeler.h b/NeuralAmpModeler/NeuralAmpModeler.h index 350481ef..1c59bb96 100644 --- a/NeuralAmpModeler/NeuralAmpModeler.h +++ b/NeuralAmpModeler/NeuralAmpModeler.h @@ -51,7 +51,6 @@ enum EMsgTags // These tags are used from UI -> DSP kMsgTagClearModel = 0, kMsgTagClearIR, - kMsgTagHighlightColor, // The following tags are from DSP -> UI kMsgTagLoadFailed, kMsgTagLoadedModel, @@ -156,8 +155,6 @@ class NeuralAmpModeler final : public iplug::Plugin WDL_String mNAMPath; // Path to IR (.wav file) WDL_String mIRPath; - - WDL_String mHighLightColor; std::unordered_map mNAMParams = {{"Input", 0.0}, {"Output", 0.0}}; diff --git a/NeuralAmpModeler/NeuralAmpModelerControls.h b/NeuralAmpModeler/NeuralAmpModelerControls.h index efd25663..f5433add 100644 --- a/NeuralAmpModeler/NeuralAmpModelerControls.h +++ b/NeuralAmpModeler/NeuralAmpModelerControls.h @@ -2,8 +2,6 @@ #include "IControls.h" -#define PLUG() static_cast(GetDelegate()) - using namespace iplug; using namespace igraphics; @@ -48,21 +46,19 @@ class NAMKnobControl : public IVKnobControl, public IBitmapBase : IVKnobControl(bounds, paramIdx, label, style, true) , IBitmapBase(bitmap) { - mInnerPointerFrac = 0.55; + mInnerPointerFrac = 0.6; } - void OnRescale() override { mBitmap = GetUI()->GetScaledBitmap(mBitmap); } - void DrawWidget(IGraphics& g) override { - float widgetRadius = GetRadius() * 0.73; - auto knobRect = mWidgetBounds.GetCentredInside(mWidgetBounds.W(), mWidgetBounds.W()); - const float cx = knobRect.MW(), cy = knobRect.MH(); + float widgetRadius = GetRadius(); + const float cx = mWidgetBounds.MW(), cy = mWidgetBounds.MH(); + IRECT knobHandleBounds = mWidgetBounds.GetCentredInside((widgetRadius - mTrackToHandleDistance) * 2.5f); const float angle = mAngle1 + (static_cast(GetValue()) * (mAngle2 - mAngle1)); - DrawIndicatorTrack(g, angle, cx+0.5, cy, widgetRadius); - g.DrawFittedBitmap(mBitmap, knobRect); + DrawIndicatorTrack(g, angle, cx, cy, widgetRadius); + g.DrawBitmap(mBitmap, knobHandleBounds.GetTranslated(4, 3), 0, 0); float data[2][2]; - RadialPoints(angle, cx, cy, mInnerPointerFrac * widgetRadius, mInnerPointerFrac * widgetRadius, 2, data); + RadialPoints(angle, cx + 1, 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}, @@ -76,87 +72,36 @@ class NAMKnobControl : public IVKnobControl, public IBitmapBase class NAMSwitchControl : public IVSlideSwitchControl, public IBitmapBase { public: - NAMSwitchControl(const IRECT& bounds, int paramIdx, const char* label, const IVStyle& style, IBitmap bitmap) - : IVSlideSwitchControl(bounds, paramIdx, label, style - .WithRoundness(0.666f) - .WithShowValue(false) - .WithEmboss(true) - .WithShadowOffset(1.5f) - .WithDrawShadows(false) - .WithColor(kFR, COLOR_BLACK) - .WithFrameThickness(0.5f) - .WithWidgetFrac(0.5f) - .WithLabelOrientation(EOrientation::South)) + NAMSwitchControl(const IRECT& bounds, int paramIdx, const char* label, const IVStyle& style, IBitmap bitmap, + IBitmap handleBitmap) + : IVSlideSwitchControl( + {bounds.L, bounds.T, bitmap}, paramIdx, label, style.WithRoundness(5.f).WithShowLabel(false).WithShowValue(false)) , IBitmapBase(bitmap) + , mHandleBitmap(handleBitmap) { } void DrawWidget(IGraphics& g) override { + // OL: arg, pixels :-( + if (GetValue() > 0.5f) + g.FillRoundRect(GetColor(kFG), mRECT.GetPadded(-2.7f).GetTranslated(0.0, 1.f), 9.f, &mBlend); + else + g.FillRoundRect(COLOR_BLACK, mRECT.GetPadded(-2.7f).GetTranslated(0.0, 1.f), 9.f, &mBlend); + DrawTrack(g, mWidgetBounds); DrawHandle(g, mHandleBounds); } - void DrawTrack(IGraphics& g, const IRECT& bounds) override - { - IRECT handleBounds = GetAdjustedHandleBounds(bounds); - handleBounds = IRECT(handleBounds.L, handleBounds.T, handleBounds.R, handleBounds.T + mBitmap.H()); - IRECT centreBounds = handleBounds.GetPadded(-mStyle.shadowOffset); - IRECT shadowBounds = handleBounds.GetTranslated(mStyle.shadowOffset, mStyle.shadowOffset); -// const float contrast = mDisabled ? -GRAYED_ALPHA : 0.f; - float cR = 7.f; - const float tlr = cR; - const float trr = cR; - const float blr = cR; - const float brr = cR; - - // outer shadow - if (mStyle.drawShadows) - g.FillRoundRect(GetColor(kSH), shadowBounds, tlr, trr, blr, brr, &mBlend); - - // Embossed style unpressed - if (mStyle.emboss) - { - // Positive light - g.FillRoundRect(GetColor(kPR), handleBounds, tlr, trr, blr, brr/*, &blend*/); - - // Negative light - g.FillRoundRect(GetColor(kSH), shadowBounds, tlr, trr, blr, brr/*, &blend*/); - - // Fill in foreground - g.FillRoundRect(GetValue() > 0.5 ? GetColor(kX1) : COLOR_BLACK, centreBounds, tlr, trr, blr, brr, &mBlend); - - // Shade when hovered - if (mMouseIsOver) - g.FillRoundRect(GetColor(kHL), centreBounds, tlr, trr, blr, brr, &mBlend); - } - else - { - g.FillRoundRect(GetValue() > 0.5 ? GetColor(kX1) : COLOR_BLACK, handleBounds, tlr, trr, blr, brr/*, &blend*/); - - // Shade when hovered - if (mMouseIsOver) - g.FillRoundRect(GetColor(kHL), handleBounds, tlr, trr, blr, brr, &mBlend); - } - - if (mStyle.drawFrame) - g.DrawRoundRect(GetColor(kFR), handleBounds, tlr, trr, blr, brr, &mBlend, mStyle.frameThickness); - } + void DrawTrack(IGraphics& g, const IRECT& filledArea) override { g.DrawBitmap(mBitmap, mRECT, 0, &mBlend); } void DrawHandle(IGraphics& g, const IRECT& filledArea) override { - IRECT r; - if (GetSelectedIdx() == 0) - { - r = filledArea.GetFromLeft(mBitmap.W()); - } - else - { - r = filledArea.GetFromRight(mBitmap.W()); - } - - g.DrawBitmap(mBitmap, r, 0, 0, nullptr); + g.DrawBitmap(mHandleBitmap, filledArea.GetTranslated(2.0, 3.0), 0, &mBlend); } + +private: + IBitmap mHandleBitmap; }; class NAMFileNameControl : public IVButtonControl @@ -201,13 +146,12 @@ class NAMFileBrowserControl : public IDirBrowseControlBase public: NAMFileBrowserControl(const IRECT& bounds, int clearMsgTag, const char* labelStr, const char* fileExtension, IFileDialogCompletionHandlerFunc ch, const IVStyle& style, const ISVG& loadSVG, - const ISVG& clearSVG, const ISVG& leftSVG, const ISVG& rightSVG, const IBitmap& bitmap) + const ISVG& clearSVG, const ISVG& leftSVG, const ISVG& rightSVG) : IDirBrowseControlBase(bounds, fileExtension, false, false) , mClearMsgTag(clearMsgTag) , mDefaultLabelStr(labelStr) , mCompletionHandlerFunc(ch) , mStyle(style.WithColor(kFG, COLOR_TRANSPARENT).WithDrawFrame(false)) - , mBitmap(bitmap) , mLoadSVG(loadSVG) , mClearSVG(clearSVG) , mLeftSVG(leftSVG) @@ -215,10 +159,9 @@ class NAMFileBrowserControl : public IDirBrowseControlBase { mIgnoreMouse = true; } - + void Draw(IGraphics& g) override - { - g.DrawFittedBitmap(mBitmap, mRECT); + { /* NO-OP */ } void OnPopupMenuSelection(IPopupMenu* pSelectedMenu, int valIdx) override @@ -310,7 +253,7 @@ class NAMFileBrowserControl : public IDirBrowseControlBase } }; - IRECT padded = mRECT.GetPadded(-6.f).GetHPadded(-2.f); + IRECT padded = mRECT.GetPadded(-5.f); const auto buttonWidth = padded.H(); const auto loadFileButtonBounds = padded.ReduceFromLeft(buttonWidth); const auto clearButtonBounds = padded.ReduceFromRight(buttonWidth); @@ -388,181 +331,6 @@ class NAMFileBrowserControl : public IDirBrowseControlBase IFileDialogCompletionHandlerFunc mCompletionHandlerFunc; NAMFileNameControl* mFileNameControl = nullptr; IVStyle mStyle; - IBitmap mBitmap; ISVG mLoadSVG, mClearSVG, mLeftSVG, mRightSVG; int mClearMsgTag; }; - -class NAMMeterControl : public IVPeakAvgMeterControl<>, public IBitmapBase -{ - static constexpr float KMeterMin = -70.0f; - static constexpr float KMeterMax = -0.01f; - -public: - NAMMeterControl(const IRECT& bounds, const IBitmap& bitmap, const IVStyle& style) - : IVPeakAvgMeterControl<>(bounds, "", - style.WithShowValue(false).WithDrawFrame(false).WithWidgetFrac(0.8), - EDirection::Vertical, {}, 0, KMeterMin, KMeterMax, {}) - , IBitmapBase(bitmap) - { - SetPeakSize(1.0f); - } - - void OnRescale() override { mBitmap = GetUI()->GetScaledBitmap(mBitmap); } - - virtual void OnResize() override - { - SetTargetRECT(MakeRects(mRECT)); - mWidgetBounds = mWidgetBounds.GetMidHPadded(5).GetVPadded(10); - MakeTrackRects(mWidgetBounds); - MakeStepRects(mWidgetBounds, mNSteps); - SetDirty(false); - } - - void DrawBackground(IGraphics& g, const IRECT& r) override - { - g.DrawFittedBitmap(mBitmap, r); - } - - void DrawTrackHandle(IGraphics& g, const IRECT& r, int chIdx, bool aboveBaseValue) override - { - if (r.H() > 2) - g.FillRect(GetColor(kX1), r, &mBlend); - } - - void DrawPeak(IGraphics& g, const IRECT& r, int chIdx, bool aboveBaseValue) override - { - g.DrawGrid(COLOR_BLACK, mTrackBounds.Get()[chIdx], 10, 2); - g.FillRect(GetColor(kX3), r, &mBlend); - } -}; - -class NAMAboutBoxControl : public IContainerBase -{ -public: - NAMAboutBoxControl(const IRECT& bounds, const IBitmap& bitmap, const IVStyle& style) - : IContainerBase(bounds) - , mAnimationTime(0) - , mBitmap(bitmap) - , mStyle(style) - { - mIgnoreMouse = false; - } - - bool OnKeyDown(float x, float y, const IKeyPress& key) override - { - if (key.VK == kVK_ESCAPE) - { - HideAnimated(true); - return true; - } - - return false; - } - - void OnMouseDown(float x, float y, const IMouseMod& mod) override - { - HideAnimated(true); - } - - void HideAnimated(bool hide) - { - mWillHide = hide; - - if (hide == false) - { - mHide = false; - } - else // hide subcontrols immediately - { - ForAllChildrenFunc([hide](int childIdx, IControl* pChild) { - pChild->Hide(hide); - }); - } - - SetAnimation([&](IControl* pCaller) { - auto progress = static_cast(pCaller->GetAnimationProgress()); - - if (mWillHide) - SetBlend(IBlend(EBlend::Default, 1.0f-progress)); - else - SetBlend(IBlend(EBlend::Default, progress)); - - if (progress > 1.0f) - { - pCaller->OnEndAnimation(); - IContainerBase::Hide(mWillHide); - GetUI()->SetAllControlsDirty(); - return; - } - - }, mAnimationTime); - - SetDirty(true); - } - - void OnAttached() override - { - AddChildControl(new IBitmapControl(IRECT(), mBitmap))->SetIgnoreMouse(true); - - const IVStyle titleStyle = - DEFAULT_STYLE - .WithValueText(IText(24, COLOR_WHITE, "Ronduit-Light")) - .WithDrawFrame(false) - .WithShadowOffset(2.f); - - AddChildControl(new IVLabelControl(IRECT(), "Neural Amp Modeler", titleStyle)); - - WDL_String verStr, buildInfoStr; - PLUG()->GetPluginVersionStr(verStr); - - buildInfoStr.SetFormatted(100, "Version %s %s %s", verStr.Get(), PLUG()->GetArchStr(), PLUG()->GetAPIStr()); - - AddChildControl(new IVLabelControl( - IRECT(), "By Steven Atkinson", - mStyle.WithDrawFrame(false).WithValueText({DEFAULT_TEXT_SIZE, EAlign::Center, PluginColors::HELP_TEXT}))); - AddChildControl(new IVLabelControl( - IRECT(), buildInfoStr.Get(), - mStyle.WithDrawFrame(false).WithValueText({DEFAULT_TEXT_SIZE, EAlign::Center, PluginColors::HELP_TEXT}))); - AddChildControl(new IVLabelControl( - IRECT(), "Plug-in developed using iPlug2 with some help from Oli Larkin", - mStyle.WithDrawFrame(false).WithValueText({DEFAULT_TEXT_SIZE, EAlign::Center, PluginColors::HELP_TEXT}))); - AddChildControl(new IURLControl(IRECT(), "www.neuralampmodeler.com", "https://www.neuralampmodeler.com", - {DEFAULT_TEXT_SIZE, PluginColors::HELP_TEXT})); - - AddChildControl(new IVColorSwatchControl(IRECT() , "Highlight", [&](int idx, IColor color){ - - WDL_String colorCodeStr; - color.ToColorCodeStr(colorCodeStr, false); - this->GetDelegate()->SendArbitraryMsgFromUI(kMsgTagHighlightColor, kNoTag, colorCodeStr.GetLength(), colorCodeStr.Get()); - - }, mStyle, IVColorSwatchControl::ECellLayout::kHorizontal, {kFG}, {""})); - - OnResize(); - } - - void OnResize() override - { - if (NChildren()) - { - const IRECT mainArea = mRECT.GetPadded(-20); - const auto content = mainArea.GetPadded(-10); - const auto titleLabel = content.GetFromTop(50); - GetChild(0)->SetTargetAndDrawRECTs(mRECT); - GetChild(1)->SetTargetAndDrawRECTs(titleLabel); - GetChild(2)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H())); - GetChild(3)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 20).GetMidVPadded(5)); - GetChild(4)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 40).GetMidVPadded(5)); - GetChild(5)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 60).GetMidVPadded(7)); - GetChild(6)->SetTargetAndDrawRECTs(content.GetFromBRHC(100, 50)); - } - } - - -private: - IBitmap mBitmap; - IVStyle mStyle; - int mAnimationTime = 200; - bool mWillHide = false; -}; - diff --git a/NeuralAmpModeler/config.h b/NeuralAmpModeler/config.h index c2f32c49..44ec1710 100644 --- a/NeuralAmpModeler/config.h +++ b/NeuralAmpModeler/config.h @@ -57,36 +57,22 @@ #define APP_SIGNAL_VECTOR_SIZE 64 #define ROBOTO_FN "Roboto-Regular.ttf" -#define RONDUIT_FN "RonduitCapitals-Light.ttf" - -#define HELP_FN "Help.svg" -#define FILE_FN "File.svg" -#define CLOSE_BUTTON_FN "Cross.svg" -#define LEFT_ARROW_FN "ArrowLeft.svg" -#define RIGHT_ARROW_FN "ArrowRight.svg" -#define MODEL_ICON_FN "ModelIcon.svg" -#define IR_ICON_ON_FN "IRIconOn.svg" -#define IR_ICON_OFF_FN "IRIconOff.svg" - -#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" -#define FILEBACKGROUND_FN "FileBackground.png" -#define FILEBACKGROUND2X_FN "FileBackground@2x.png" -#define FILEBACKGROUND3X_FN "FileBackground@3x.png" -#define LINES_FN "Lines.png" -#define LINES2X_FN "Lines@2x.png" -#define LINES3X_FN "Lines@3x.png" -#define SLIDESWITCHHANDLE_FN "SlideSwitchHandle.png" -#define SLIDESWITCHHANDLE2X_FN "SlideSwitchHandle@2x.png" -#define SLIDESWITCHHANDLE3X_FN "SlideSwitchHandle@3x.png" - -#define METERBACKGROUND_FN "MeterBackground.png" -#define METERBACKGROUND2X_FN "MeterBackground@2x.png" -#define METERBACKGROUND3X_FN "MeterBackground@3x.png" +#define HELP_FN "help.svg" +#define FILE_FN "SkinEHeritage_File.svg" +#define FOLDER_FN "folder.svg" +#define CLOSE_BUTTON_FN "SkinEHeritage_Close-button.svg" +#define LEFT_ARROW_FN "SkinEHeritage_ArrowLeft.svg" +#define RIGHT_ARROW_FN "SkinEHeritage_ArrowRight.svg" +#define EH_SKIN_FN "SkinEHeritage_BG.jpeg" +#define EH_SKIN2X_FN "SkinEHeritage_BG@2x.jpeg" +#define KNOB_FN "SkinEHeritage_Knob.png" +#define KNOB2X_FN "SkinEHeritage_Knob@2x.png" +#define TOGGLE_FN "SkinEHeritage_Toggle.png" +#define TOGGLE2X_FN "SkinEHeritage_Toggle@2x.png" +#define TOGGLEIR_FN "SkinEHeritage_IR_Toggle.png" +#define TOGGLEIR2X_FN "SkinEHeritage_IR_Toggle@2x.png" +#define TOGGLE_HANDLE_FN "SkinEHeritage_ToggleHandle.png" +#define TOGGLE_HANDLE2X_FN "SkinEHeritage_ToggleHandle@2x.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/fonts/Ronduit-Capitals-Light-License.txt b/NeuralAmpModeler/resources/fonts/Ronduit-Capitals-Light-License.txt deleted file mode 100644 index 333663d8..00000000 --- a/NeuralAmpModeler/resources/fonts/Ronduit-Capitals-Light-License.txt +++ /dev/null @@ -1,41 +0,0 @@ -Preamble -In this license, 'the given typeface' refers to the given .zip file, which may contain one or numerous fonts. These fonts can be of any type (.ttf, .otf, ...) and together they form a 'font family' or in short a 'typeface'. - -1. Copyright -The given typeface is the intellectual property of -Ivan Filipov -Neogrey Ltd -Plovdiv, Bulgaria - -provided it is original, and is protected by copyright laws in many parts of the world. - -2. Personal Use -The given typeface may be downloaded and used free of charge for personal use, as long as the usage is not racist or illegal. Personal use refers to all usage that does not generate financial income in a business manner, for instance: - -- personal scrapbooking for yourself -- recreational websites and blogs for friends and family -- prints such as flyers, posters, t-shirts for churches, charities, and non-profit organizations - -3. Commercial Use -Commercial use is not allowed without prior written permission from the respective author. Please contact the author to ask for commercial licensing. Commercial use refers to usage in a business environment, including: - -- business cards, logos, advertising, websites, mobile apps for companies -- t-shirts, books, apparel that will be sold for money -- flyers, posters for events that charge admission -- freelance graphic design work -- anything that will generate direct or indirect income - -4. Modification -The given typeface may not be modified, altered, adapted or built upon without written permission by its respective author. This pertains all files within the downloadable font zip-file. - -5. Conversion -The given typeface may be converted to other formats such as WOFF, SVG or EOT webfonts, as long as the font is not modified in any other way, such as changing names or altering individual glyphs. - -6. Distribution -While the given typeface may freely be copied and passed along to other individuals for private use as its original downloadable zip-file, it may not be sold or published without written permission by its respective author. - -7. Embedding -The given typeface may be embedded into an application such as a web- or mobile app, as long as the application is of personal use and does not distribute the given typeface, such as offering it as a download. - -8. Disclaimer -The given typeface is offered 'as is' without any warranty. Neogrey Ltd and Ivan Filipov shall not be liable for any damage derived from using this typeface. By using the given typeface you agree to the terms of this license. \ No newline at end of file diff --git a/NeuralAmpModeler/resources/fonts/RonduitCapitals-Light.ttf b/NeuralAmpModeler/resources/fonts/RonduitCapitals-Light.ttf deleted file mode 100644 index 1d44dfae..00000000 Binary files a/NeuralAmpModeler/resources/fonts/RonduitCapitals-Light.ttf and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/ArrowLeft.svg b/NeuralAmpModeler/resources/img/ArrowLeft.svg deleted file mode 100644 index e91b8529..00000000 --- a/NeuralAmpModeler/resources/img/ArrowLeft.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/NeuralAmpModeler/resources/img/ArrowRight.svg b/NeuralAmpModeler/resources/img/ArrowRight.svg deleted file mode 100644 index 94788911..00000000 --- a/NeuralAmpModeler/resources/img/ArrowRight.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/NeuralAmpModeler/resources/img/Background.jpg b/NeuralAmpModeler/resources/img/Background.jpg deleted file mode 100644 index cc436187..00000000 Binary files a/NeuralAmpModeler/resources/img/Background.jpg and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Background@2x.jpg b/NeuralAmpModeler/resources/img/Background@2x.jpg deleted file mode 100644 index 4a085d29..00000000 Binary files a/NeuralAmpModeler/resources/img/Background@2x.jpg and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Background@3x.jpg b/NeuralAmpModeler/resources/img/Background@3x.jpg deleted file mode 100644 index 8617203d..00000000 Binary files a/NeuralAmpModeler/resources/img/Background@3x.jpg and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Cross.svg b/NeuralAmpModeler/resources/img/Cross.svg deleted file mode 100644 index b0365ade..00000000 --- a/NeuralAmpModeler/resources/img/Cross.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/NeuralAmpModeler/resources/img/File.svg b/NeuralAmpModeler/resources/img/File.svg deleted file mode 100644 index 84d0a2bb..00000000 --- a/NeuralAmpModeler/resources/img/File.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/NeuralAmpModeler/resources/img/FileBackground.png b/NeuralAmpModeler/resources/img/FileBackground.png deleted file mode 100644 index 7f3dda8e..00000000 Binary files a/NeuralAmpModeler/resources/img/FileBackground.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/FileBackground@2x.png b/NeuralAmpModeler/resources/img/FileBackground@2x.png deleted file mode 100644 index d1f286a5..00000000 Binary files a/NeuralAmpModeler/resources/img/FileBackground@2x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/FileBackground@3x.png b/NeuralAmpModeler/resources/img/FileBackground@3x.png deleted file mode 100644 index 7565aa97..00000000 Binary files a/NeuralAmpModeler/resources/img/FileBackground@3x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Help.svg b/NeuralAmpModeler/resources/img/Help.svg deleted file mode 100644 index b3450239..00000000 --- a/NeuralAmpModeler/resources/img/Help.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/NeuralAmpModeler/resources/img/IRIconOff.svg b/NeuralAmpModeler/resources/img/IRIconOff.svg deleted file mode 100644 index 63b953c9..00000000 --- a/NeuralAmpModeler/resources/img/IRIconOff.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/NeuralAmpModeler/resources/img/IRIconOn.svg b/NeuralAmpModeler/resources/img/IRIconOn.svg deleted file mode 100644 index 4a576f2c..00000000 --- a/NeuralAmpModeler/resources/img/IRIconOn.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/NeuralAmpModeler/resources/img/KnobBackground.png b/NeuralAmpModeler/resources/img/KnobBackground.png deleted file mode 100644 index 759a2e36..00000000 Binary files a/NeuralAmpModeler/resources/img/KnobBackground.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/KnobBackground@2x.png b/NeuralAmpModeler/resources/img/KnobBackground@2x.png deleted file mode 100644 index 83170b7b..00000000 Binary files a/NeuralAmpModeler/resources/img/KnobBackground@2x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/KnobBackground@3x.png b/NeuralAmpModeler/resources/img/KnobBackground@3x.png deleted file mode 100644 index 8c0dec70..00000000 Binary files a/NeuralAmpModeler/resources/img/KnobBackground@3x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Lines.png b/NeuralAmpModeler/resources/img/Lines.png deleted file mode 100644 index 665bf01e..00000000 Binary files a/NeuralAmpModeler/resources/img/Lines.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Lines@2x.png b/NeuralAmpModeler/resources/img/Lines@2x.png deleted file mode 100644 index c63c760b..00000000 Binary files a/NeuralAmpModeler/resources/img/Lines@2x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/Lines@3x.png b/NeuralAmpModeler/resources/img/Lines@3x.png deleted file mode 100644 index 48cad888..00000000 Binary files a/NeuralAmpModeler/resources/img/Lines@3x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/MeterBackground.png b/NeuralAmpModeler/resources/img/MeterBackground.png deleted file mode 100644 index ec1749bb..00000000 Binary files a/NeuralAmpModeler/resources/img/MeterBackground.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/MeterBackground@2x.png b/NeuralAmpModeler/resources/img/MeterBackground@2x.png deleted file mode 100644 index 6c0e4c8b..00000000 Binary files a/NeuralAmpModeler/resources/img/MeterBackground@2x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/MeterBackground@3x.png b/NeuralAmpModeler/resources/img/MeterBackground@3x.png deleted file mode 100644 index 4200159a..00000000 Binary files a/NeuralAmpModeler/resources/img/MeterBackground@3x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/ModelIcon.svg b/NeuralAmpModeler/resources/img/ModelIcon.svg deleted file mode 100644 index 7ff23d26..00000000 --- a/NeuralAmpModeler/resources/img/ModelIcon.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_ArrowLeft.svg b/NeuralAmpModeler/resources/img/SkinEHeritage_ArrowLeft.svg new file mode 100644 index 00000000..4530373a --- /dev/null +++ b/NeuralAmpModeler/resources/img/SkinEHeritage_ArrowLeft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_ArrowRight.svg b/NeuralAmpModeler/resources/img/SkinEHeritage_ArrowRight.svg new file mode 100644 index 00000000..8f6d9d2b --- /dev/null +++ b/NeuralAmpModeler/resources/img/SkinEHeritage_ArrowRight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_BG.jpeg b/NeuralAmpModeler/resources/img/SkinEHeritage_BG.jpeg new file mode 100644 index 00000000..31e93346 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_BG.jpeg differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_BG@2x.jpeg b/NeuralAmpModeler/resources/img/SkinEHeritage_BG@2x.jpeg new file mode 100644 index 00000000..f4c04fd0 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_BG@2x.jpeg differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_Close-button.svg b/NeuralAmpModeler/resources/img/SkinEHeritage_Close-button.svg new file mode 100644 index 00000000..2d13fd0e --- /dev/null +++ b/NeuralAmpModeler/resources/img/SkinEHeritage_Close-button.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_File.svg b/NeuralAmpModeler/resources/img/SkinEHeritage_File.svg new file mode 100644 index 00000000..5b223050 --- /dev/null +++ b/NeuralAmpModeler/resources/img/SkinEHeritage_File.svg @@ -0,0 +1,7 @@ + + + + + + Folder + \ No newline at end of file diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_IR_Toggle.png b/NeuralAmpModeler/resources/img/SkinEHeritage_IR_Toggle.png new file mode 100644 index 00000000..9d34cb5a Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_IR_Toggle.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_IR_Toggle@2x.png b/NeuralAmpModeler/resources/img/SkinEHeritage_IR_Toggle@2x.png new file mode 100644 index 00000000..56a596f3 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_IR_Toggle@2x.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_Knob.png b/NeuralAmpModeler/resources/img/SkinEHeritage_Knob.png new file mode 100644 index 00000000..c14c398f Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_Knob.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_Knob@2x.png b/NeuralAmpModeler/resources/img/SkinEHeritage_Knob@2x.png new file mode 100644 index 00000000..5d646251 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_Knob@2x.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_Toggle.png b/NeuralAmpModeler/resources/img/SkinEHeritage_Toggle.png new file mode 100644 index 00000000..45c58b05 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_Toggle.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_Toggle@2x.png b/NeuralAmpModeler/resources/img/SkinEHeritage_Toggle@2x.png new file mode 100644 index 00000000..ac373bdd Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_Toggle@2x.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_ToggleHandle.png b/NeuralAmpModeler/resources/img/SkinEHeritage_ToggleHandle.png new file mode 100644 index 00000000..45483c90 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_ToggleHandle.png differ diff --git a/NeuralAmpModeler/resources/img/SkinEHeritage_ToggleHandle@2x.png b/NeuralAmpModeler/resources/img/SkinEHeritage_ToggleHandle@2x.png new file mode 100644 index 00000000..53110315 Binary files /dev/null and b/NeuralAmpModeler/resources/img/SkinEHeritage_ToggleHandle@2x.png differ diff --git a/NeuralAmpModeler/resources/img/SlideSwitchHandle.png b/NeuralAmpModeler/resources/img/SlideSwitchHandle.png deleted file mode 100644 index e8bb0836..00000000 Binary files a/NeuralAmpModeler/resources/img/SlideSwitchHandle.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/SlideSwitchHandle@2x.png b/NeuralAmpModeler/resources/img/SlideSwitchHandle@2x.png deleted file mode 100644 index e0309627..00000000 Binary files a/NeuralAmpModeler/resources/img/SlideSwitchHandle@2x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/SlideSwitchHandle@3x.png b/NeuralAmpModeler/resources/img/SlideSwitchHandle@3x.png deleted file mode 100644 index f5e87b75..00000000 Binary files a/NeuralAmpModeler/resources/img/SlideSwitchHandle@3x.png and /dev/null differ diff --git a/NeuralAmpModeler/resources/img/close-button.svg b/NeuralAmpModeler/resources/img/close-button.svg new file mode 100644 index 00000000..834b1a7b --- /dev/null +++ b/NeuralAmpModeler/resources/img/close-button.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + Close Button + 2013-09-18T11:23:45 + A round black close button with a white, thick, X in the center. + https://openclipart.org/detail/183568/close-button-by-henrikhoff-183568 + + + henrikhoff + + + + + black + close button + cross + icon + white + x + + + + + + + + + + + diff --git a/NeuralAmpModeler/resources/img/file.svg b/NeuralAmpModeler/resources/img/file.svg new file mode 100644 index 00000000..acbfc9c0 --- /dev/null +++ b/NeuralAmpModeler/resources/img/file.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/NeuralAmpModeler/resources/img/folder.svg b/NeuralAmpModeler/resources/img/folder.svg new file mode 100644 index 00000000..86eac3c0 --- /dev/null +++ b/NeuralAmpModeler/resources/img/folder.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/NeuralAmpModeler/resources/img/help.svg b/NeuralAmpModeler/resources/img/help.svg new file mode 100644 index 00000000..25025dd7 --- /dev/null +++ b/NeuralAmpModeler/resources/img/help.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/NeuralAmpModeler/resources/main.rc b/NeuralAmpModeler/resources/main.rc index 3735d62e..d6c73185 100644 --- a/NeuralAmpModeler/resources/main.rc +++ b/NeuralAmpModeler/resources/main.rc @@ -1,289 +1,250 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United Kingdom) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK -#pragma code_page(1252) - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_DIALOG_PREF DIALOG 0, 0, 223, 309 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Preferences" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",IDOK,110,285,50,14 - PUSHBUTTON "Apply",IDAPPLY,54,285,50,14 - PUSHBUTTON "Cancel",IDCANCEL,166,285,50,14 - COMBOBOX IDC_COMBO_AUDIO_DRIVER,20,35,100,100,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Driver Type",IDC_STATIC,22,25,38,8 - COMBOBOX IDC_COMBO_AUDIO_IN_DEV,20,65,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Input Device",IDC_STATIC,20,55,42,8 - COMBOBOX IDC_COMBO_AUDIO_OUT_DEV,20,95,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Output Device",IDC_STATIC,20,85,47,8 - COMBOBOX IDC_COMBO_AUDIO_BUF_SIZE,135,35,65,100,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Buffer Size",IDC_STATIC,137,25,46,8 - COMBOBOX IDC_COMBO_AUDIO_SR,135,95,65,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Sampling Rate",IDC_STATIC,135,85,47,8 - GROUPBOX "Audio Device Settings",IDC_STATIC,5,10,210,170 - PUSHBUTTON "Config...",IDC_BUTTON_OS_DEV_SETTINGS,135,155,65,14 - COMBOBOX IDC_COMBO_AUDIO_IN_L,20,125,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Input 1 (L)",IDC_STATIC,20,115,33,8 - COMBOBOX IDC_COMBO_AUDIO_IN_R,65,126,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Input 2 (R)",IDC_STATIC,65,115,34,8 - COMBOBOX IDC_COMBO_AUDIO_OUT_L,20,155,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Output 1 (L)",IDC_STATIC,20,145,38,8 - COMBOBOX IDC_COMBO_AUDIO_OUT_R,65,155,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Output 2 (R)",IDC_STATIC,65,145,40,8 - GROUPBOX "MIDI Device Settings",IDC_STATIC,5,190,210,85 - COMBOBOX IDC_COMBO_MIDI_OUT_DEV,15,250,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Output Device",IDC_STATIC,15,240,47,8 - COMBOBOX IDC_COMBO_MIDI_IN_DEV,15,220,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Input Device",IDC_STATIC,15,210,42,8 - LTEXT "Input Channel",IDC_STATIC,125,210,45,8 - COMBOBOX IDC_COMBO_MIDI_IN_CHAN,125,220,50,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS - LTEXT "Output Channel",IDC_STATIC,125,240,50,8 - COMBOBOX IDC_COMBO_MIDI_OUT_CHAN,125,250,50,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS -END - -IDD_DIALOG_MAIN DIALOG 0, 0, 500, 300 -STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "NeuralAmpModeler" -MENU IDR_MENU1 -FONT 8, "MS Sans Serif" -BEGIN -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_MENU1 MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Preferences...\tCtrl+,", ID_PREFERENCES - MENUITEM "&Quit", ID_QUIT - END - POPUP "&Debug" - BEGIN - MENUITEM "&Live Edit Mode\tCtrl+E", ID_LIVE_EDIT - MENUITEM "&Show Control Bounds\tCtrl+B", ID_SHOW_BOUNDS - MENUITEM "&Show Drawn Area\tCtrl+D", ID_SHOW_DRAWN - MENUITEM "&Show FPS\tCtrl+F", ID_SHOW_FPS - END - POPUP "&Help" - BEGIN - MENUITEM "&About", ID_ABOUT - MENUITEM "&Read Manual", ID_HELP - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_DIALOG_PREF, DIALOG - BEGIN - END - - IDD_DIALOG_MAIN, DIALOG - BEGIN - END -END -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// AFX_DIALOG_LAYOUT -// - -IDD_DIALOG1 AFX_DIALOG_LAYOUT -BEGIN - 0 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "#include ""..\\config.h""\r\n" - "ROBOTO_FN TTF ROBOTO_FN\r\n" - "RONDUIT_FN TTF RONDUIT_FN\r\n" - "FILE_FN SVG FILE_FN\r\n" - "HELP_FN SVG HELP_FN\r\n" - "CLOSE_BUTTON_FN SVG CLOSE_BUTTON_FN\r\n" - "LEFT_ARROW_FN SVG LEFT_ARROW_FN\r\n" - "RIGHT_ARROW_FN SVG RIGHT_ARROW_FN\r\n" - "MODEL_ICON_FN SVG MODEL_ICON_FN\r\n" - "IR_ICON_ON_FN SVG IR_ICON_ON_FN\r\n" - "IR_ICON_OFF_FN SVG IR_ICON_OFF_FN\r\n" - "BACKGROUND_FN JPG BACKGROUND_FN\r\n" - "BACKGROUND2X_FN JPG BACKGROUND2X_FN\r\n" - "BACKGROUND3X_FN JPG BACKGROUND3X_FN\r\n" - "KNOBBACKGROUND_FN PNG KNOBBACKGROUND_FN\r\n" - "KNOBBACKGROUND2X_FN PNG KNOBBACKGROUND2X_FN\r\n" - "KNOBBACKGROUND3X_FN PNG KNOBBACKGROUND3X_FN\r\n" - "FILEBACKGROUND_FN PNG FILEBACKGROUND_FN\r\n" - "FILEBACKGROUND2X_FN PNG FILEBACKGROUND2X_FN\r\n" - "FILEBACKGROUND3X_FN PNG FILEBACKGROUND3X_FN\r\n" - "LINES_FN PNG LINES_FN\r\n" - "LINES2X_FN PNG LINES2X_FN\r\n" - "LINES3X_FN PNG LINES3X_FN\r\n" - "SLIDESWITCHHANDLE_FN PNG SLIDESWITCHHANDLE_FN\r\n" - "SLIDESWITCHHANDLE2X_FN PNG SLIDESWITCHHANDLE2X_FN\r\n" - "SLIDESWITCHHANDLE3X_FN PNG SLIDESWITCHHANDLE3X_FN\r\n" - "METERBACKGROUND_FN PNG METERBACKGROUND_FN\r\n" - "METERBACKGROUND2X_FN PNG METERBACKGROUND2X_FN\r\n" - "METERBACKGROUND3X_FN PNG METERBACKGROUND3X_FN\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON1 ICON "NeuralAmpModeler.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDR_ACCELERATOR1 ACCELERATORS -BEGIN - VK_OEM_COMMA, ID_PREFERENCES, VIRTKEY, CONTROL, NOINVERT - "B", ID_SHOW_BOUNDS, VIRTKEY, CONTROL, NOINVERT - "D", ID_SHOW_DRAWN, VIRTKEY, CONTROL, NOINVERT - "F", ID_SHOW_FPS, VIRTKEY, CONTROL, NOINVERT - "E", ID_LIVE_EDIT, VIRTKEY, CONTROL, NOINVERT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,1,0 - PRODUCTVERSION 0,0,1,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040004e4" - BEGIN - VALUE "FileVersion", "0.0.1" - VALUE "ProductVersion", "0.0.1" - VALUE "FileDescription", "NeuralAmpModeler" - VALUE "InternalName", "NeuralAmpModeler" - VALUE "ProductName", "NeuralAmpModeler" - VALUE "CompanyName", "StevenAtkinson" - VALUE "LegalCopyright", "Copyright 2020 Acme Inc" - VALUE "LegalTrademarks", "VST is a trademark of Steinberg Media Technologies GmbH, Audio Unit is a trademark of Apple, Inc." - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x400, 1252 - END -END - -#endif // English (United Kingdom) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#include "..\config.h" -ROBOTO_FN TTF ROBOTO_FN -RONDUIT_FN TTF RONDUIT_FN -FILE_FN SVG FILE_FN -HELP_FN SVG HELP_FN -CLOSE_BUTTON_FN SVG CLOSE_BUTTON_FN -LEFT_ARROW_FN SVG LEFT_ARROW_FN -RIGHT_ARROW_FN SVG RIGHT_ARROW_FN -MODEL_ICON_FN SVG MODEL_ICON_FN -IR_ICON_ON_FN SVG IR_ICON_ON_FN -IR_ICON_OFF_FN SVG IR_ICON_OFF_FN -BACKGROUND_FN JPG BACKGROUND_FN -BACKGROUND2X_FN JPG BACKGROUND2X_FN -BACKGROUND3X_FN JPG BACKGROUND3X_FN -KNOBBACKGROUND_FN PNG KNOBBACKGROUND_FN -KNOBBACKGROUND2X_FN PNG KNOBBACKGROUND2X_FN -KNOBBACKGROUND3X_FN PNG KNOBBACKGROUND3X_FN -FILEBACKGROUND_FN PNG FILEBACKGROUND_FN -FILEBACKGROUND2X_FN PNG FILEBACKGROUND2X_FN -FILEBACKGROUND3X_FN PNG FILEBACKGROUND3X_FN -LINES_FN PNG LINES_FN -LINES2X_FN PNG LINES2X_FN -LINES3X_FN PNG LINES3X_FN -SLIDESWITCHHANDLE_FN PNG SLIDESWITCHHANDLE_FN -SLIDESWITCHHANDLE2X_FN PNG SLIDESWITCHHANDLE2X_FN -SLIDESWITCHHANDLE3X_FN PNG SLIDESWITCHHANDLE3X_FN -METERBACKGROUND_FN PNG METERBACKGROUND_FN -METERBACKGROUND2X_FN PNG METERBACKGROUND2X_FN -METERBACKGROUND3X_FN PNG METERBACKGROUND3X_FN -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United Kingdom) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DIALOG_PREF DIALOG 0, 0, 223, 309 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Preferences" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,110,285,50,14 + PUSHBUTTON "Apply",IDAPPLY,54,285,50,14 + PUSHBUTTON "Cancel",IDCANCEL,166,285,50,14 + COMBOBOX IDC_COMBO_AUDIO_DRIVER,20,35,100,100,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Driver Type",IDC_STATIC,22,25,38,8 + COMBOBOX IDC_COMBO_AUDIO_IN_DEV,20,65,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input Device",IDC_STATIC,20,55,42,8 + COMBOBOX IDC_COMBO_AUDIO_OUT_DEV,20,95,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output Device",IDC_STATIC,20,85,47,8 + COMBOBOX IDC_COMBO_AUDIO_BUF_SIZE,135,35,65,100,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Buffer Size",IDC_STATIC,137,25,46,8 + COMBOBOX IDC_COMBO_AUDIO_SR,135,95,65,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Sampling Rate",IDC_STATIC,135,85,47,8 + GROUPBOX "Audio Device Settings",IDC_STATIC,5,10,210,170 + PUSHBUTTON "Config...",IDC_BUTTON_OS_DEV_SETTINGS,135,155,65,14 + COMBOBOX IDC_COMBO_AUDIO_IN_L,20,125,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input 1 (L)",IDC_STATIC,20,115,33,8 + COMBOBOX IDC_COMBO_AUDIO_IN_R,65,126,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input 2 (R)",IDC_STATIC,65,115,34,8 + COMBOBOX IDC_COMBO_AUDIO_OUT_L,20,155,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output 1 (L)",IDC_STATIC,20,145,38,8 + COMBOBOX IDC_COMBO_AUDIO_OUT_R,65,155,40,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output 2 (R)",IDC_STATIC,65,145,40,8 + GROUPBOX "MIDI Device Settings",IDC_STATIC,5,190,210,85 + COMBOBOX IDC_COMBO_MIDI_OUT_DEV,15,250,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output Device",IDC_STATIC,15,240,47,8 + COMBOBOX IDC_COMBO_MIDI_IN_DEV,15,220,100,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input Device",IDC_STATIC,15,210,42,8 + LTEXT "Input Channel",IDC_STATIC,125,210,45,8 + COMBOBOX IDC_COMBO_MIDI_IN_CHAN,125,220,50,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output Channel",IDC_STATIC,125,240,50,8 + COMBOBOX IDC_COMBO_MIDI_OUT_CHAN,125,250,50,200,CBS_DROPDOWNLIST | CBS_HASSTRINGS +END + +IDD_DIALOG_MAIN DIALOG 0, 0, 500, 300 +STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "NeuralAmpModeler" +MENU IDR_MENU1 +FONT 8, "MS Sans Serif" +BEGIN +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MENU1 MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Preferences...\tCtrl+,", ID_PREFERENCES + MENUITEM "&Quit", ID_QUIT + END + POPUP "&Debug" + BEGIN + MENUITEM "&Live Edit Mode\tCtrl+E", ID_LIVE_EDIT + MENUITEM "&Show Control Bounds\tCtrl+B", ID_SHOW_BOUNDS + MENUITEM "&Show Drawn Area\tCtrl+D", ID_SHOW_DRAWN + MENUITEM "&Show FPS\tCtrl+F", ID_SHOW_FPS + END + POPUP "&Help" + BEGIN + MENUITEM "&About", ID_ABOUT + MENUITEM "&Read Manual", ID_HELP + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_DIALOG_PREF, DIALOG + BEGIN + END + + IDD_DIALOG_MAIN, DIALOG + BEGIN + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_DIALOG1 AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "#include ""..\\config.h""\r\n" + "ROBOTO_FN TTF ROBOTO_FN\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "NeuralAmpModeler.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_ACCELERATOR1 ACCELERATORS +BEGIN + VK_OEM_COMMA, ID_PREFERENCES, VIRTKEY, CONTROL, NOINVERT + "B", ID_SHOW_BOUNDS, VIRTKEY, CONTROL, NOINVERT + "D", ID_SHOW_DRAWN, VIRTKEY, CONTROL, NOINVERT + "F", ID_SHOW_FPS, VIRTKEY, CONTROL, NOINVERT + "E", ID_LIVE_EDIT, VIRTKEY, CONTROL, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 0,0,1,0 +PRODUCTVERSION 0,0,1,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040004e4" + BEGIN + VALUE "FileVersion", "0.0.1" + VALUE "ProductVersion", "0.0.1" + VALUE "FileDescription", "NeuralAmpModeler" + VALUE "InternalName", "NeuralAmpModeler" + VALUE "ProductName", "NeuralAmpModeler" + VALUE "CompanyName", "StevenAtkinson" + VALUE "LegalCopyright", "Copyright 2020 Acme Inc" + VALUE "LegalTrademarks", "VST is a trademark of Steinberg Media Technologies GmbH, Audio Unit is a trademark of Apple, Inc." + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x400, 1252 + END +END + +#endif // English (United Kingdom) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "..\config.h" +ROBOTO_FN TTF ROBOTO_FN +FILE_FN SVG FILE_FN +FOLDER_FN SVG FOLDER_FN +CLOSE_BUTTON_FN SVG CLOSE_BUTTON_FN +HELP_FN SVG HELP_FN +LEFT_ARROW_FN SVG LEFT_ARROW_FN +RIGHT_ARROW_FN SVG RIGHT_ARROW_FN +EH_SKIN_FN JPEG EH_SKIN_FN +EH_SKIN2X_FN JPEG EH_SKIN2X_FN +KNOB_FN PNG KNOB_FN +KNOB2X_FN PNG KNOB2X_FN +TOGGLE_FN PNG TOGGLE_FN +TOGGLE2X_FN PNG TOGGLE2X_FN +TOGGLEIR_FN PNG TOGGLEIR_FN +TOGGLEIR2X_FN PNG TOGGLEIR2X_FN +TOGGLE_HANDLE_FN PNG TOGGLE_HANDLE_FN +TOGGLE_HANDLE2X_FN PNG TOGGLE_HANDLE2X_FN +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/iPlug2 b/iPlug2 index 37bb6c71..7d993b2c 160000 --- a/iPlug2 +++ b/iPlug2 @@ -1 +1 @@ -Subproject commit 37bb6c71f073258e30d8a886669976e02540fadf +Subproject commit 7d993b2c607ae572483f131459b5a1053967c902