SmartGuitarAmp

Guitar plugin made with JUCE that uses neural networks to emulate a tube amplifier
Log | Files | Refs | Submodules | README

commit 8d108611522b3383e45190f9fbc0b2ff50b634e3
parent 61204de8088a17a3b6b53bcdfac153193cd851bc
Author: Matti Pesonen <matti.h.pesonen@gmail.com>
Date:   Wed, 22 Mar 2023 00:31:26 +0200

Persist GUI window size

Diffstat:
Msrc/PluginEditor.cpp | 17+++++++++++++++--
Msrc/PluginEditor.h | 2++
Msrc/PluginProcessor.cpp | 2++
Msrc/PluginProcessor.h | 1+
4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/PluginEditor.cpp b/src/PluginEditor.cpp @@ -287,6 +287,16 @@ void WaveNetVaComponent::resetImages() repaint(); } +float WaveNetVaComponent::getGuiScaleFactor() +{ + return static_cast<float> (processor.gui_scale_factor); +} + +void WaveNetVaComponent::persistGuiScaleFactor(float scaleFactor) +{ + processor.gui_scale_factor = static_cast<double> (scaleFactor); +} + // Wrapper implementation WrappedWaveNetVaAudioProcessorEditor::WrappedWaveNetVaAudioProcessorEditor(WaveNetVaAudioProcessor& p) : AudioProcessorEditor(p), waveNetVaComponent(p) @@ -299,8 +309,10 @@ WrappedWaveNetVaAudioProcessorEditor::WrappedWaveNetVaAudioProcessorEditor(WaveN constrainer->setSizeLimits(originalWidth / 4, originalHeight / 4, originalWidth * 2, originalHeight * 2); } - setResizable(true, true); - setSize(originalWidth, originalHeight); + setResizable(true, true); + float scaledWidth = static_cast<float> (originalWidth) * waveNetVaComponent.getGuiScaleFactor(); + float scaledHeight = static_cast<float> (originalHeight) * waveNetVaComponent.getGuiScaleFactor(); + setSize(scaledWidth, scaledHeight); } void WrappedWaveNetVaAudioProcessorEditor::resized() @@ -308,6 +320,7 @@ void WrappedWaveNetVaAudioProcessorEditor::resized() const auto scaleFactor = static_cast<float> (getWidth()) / originalWidth; waveNetVaComponent.setTransform(AffineTransform::scale(scaleFactor)); waveNetVaComponent.setBounds(0, 0, originalWidth, originalHeight); + waveNetVaComponent.persistGuiScaleFactor(scaleFactor); } void WrappedWaveNetVaAudioProcessorEditor::resetImages() diff --git a/src/PluginEditor.h b/src/PluginEditor.h @@ -31,6 +31,8 @@ public: void resized() override; void resetImages(); + float getGuiScaleFactor(); + void persistGuiScaleFactor(float scaleFactor); private: // This reference is provided as a quick way for your editor to diff --git a/src/PluginProcessor.cpp b/src/PluginProcessor.cpp @@ -238,6 +238,7 @@ void WaveNetVaAudioProcessor::getStateInformation (MemoryBlock& destData) std::unique_ptr<XmlElement> xml (state.createXml()); xml->setAttribute ("amp_state", amp_state); xml->setAttribute ("amp_lead", amp_lead); + xml->setAttribute ("gui_scale_factor", gui_scale_factor); copyXmlToBinary (*xml, destData); } @@ -255,6 +256,7 @@ void WaveNetVaAudioProcessor::setStateInformation (const void* data, int sizeInB treeState.replaceState (juce::ValueTree::fromXml (*xmlState)); amp_state = xmlState->getBoolAttribute ("amp_state"); amp_lead = xmlState->getBoolAttribute ("amp_lead"); + gui_scale_factor = xmlState->getDoubleAttribute ("gui_scale_factor", 1.0); if (auto* editor = dynamic_cast<WrappedWaveNetVaAudioProcessorEditor*> (getActiveEditor())) editor->resetImages(); } diff --git a/src/PluginProcessor.h b/src/PluginProcessor.h @@ -91,6 +91,7 @@ public: int amp_state = 1; // 0 = off, 1 = on int amp_lead = 1; // 1 = clean, 0 = lead int custom_tone = 0; // 0 = custom tone loaded, 1 = default channel tone + double gui_scale_factor = 1.0; File loaded_tone; juce::String loaded_tone_name;