This commit is contained in:
michalcourson
2025-11-11 19:28:13 -05:00
parent 65f74cd725
commit 202a73141b
3 changed files with 55 additions and 3 deletions

View File

@ -175,11 +175,28 @@ WebViewPluginAudioProcessorEditor::WebViewPluginAudioProcessorEditor(WebViewPlug
addAndMakeVisible(*webComponent); addAndMakeVisible(*webComponent);
webComponent->goToURL(localDevServerAddress); webComponent->goToURL(localDevServerAddress);
//webComponent.goToURL (WebBrowserComponent::getResourceProviderRoot());
//webComponent.goToURL (WebBrowserComponent::getResourceProviderRoot());
setSize(800, 390); setSize(800, 390);
startTimerHz(60); startTimerHz(60);
/*for (int i = 0; i < processorRef.parameters.sliderIds.size(); ++i) {
slider_attatchments.push_back(new
WebSliderParameterAttachment(
*processorRef.state.getParameter(processorRef.parameters.sliderIds[i]),
*slider_relays.back(),
processorRef.state.undoManager));
}
for (int i = 0; i < processorRef.parameters.toggleIds.size(); ++i) {
toggle_attatchments.push_back(new
WebToggleButtonParameterAttachment(
*processorRef.state.getParameter(processorRef.parameters.toggleIds[i]),
*toggle_relays.back(),
processorRef.state.undoManager));
}*/
} }
void WebViewPluginAudioProcessorEditor::paint(Graphics& g) void WebViewPluginAudioProcessorEditor::paint(Graphics& g)

View File

@ -23,6 +23,10 @@ public:
// Prevent page loads from navigating away from our single page web app // Prevent page loads from navigating away from our single page web app
bool pageAboutToLoad(const String& newURL) override; bool pageAboutToLoad(const String& newURL) override;
bool pageisLoaded = false;
void pageFinishedLoading(const String& newURL) override {
pageisLoaded = true;
}
}; };
//============================================================================== //==============================================================================
@ -60,6 +64,31 @@ public:
void timerCallback() override void timerCallback() override
{ {
if(webComponent->pageisLoaded){
webComponent->pageisLoaded = false;
reload_count = 60;
}
if (reload_count) {
if (--reload_count == 0) {
/*for (int i = 0; i < processorRef.parameters.sliderIds.size(); ++i) {
slider_attatchments.push_back(new
WebSliderParameterAttachment(
*processorRef.state.getParameter(processorRef.parameters.sliderIds[i]),
*slider_relays.back(),
processorRef.state.undoManager));
}
for (int i = 0; i < processorRef.parameters.toggleIds.size(); ++i) {
toggle_attatchments.push_back(new
WebToggleButtonParameterAttachment(
*processorRef.state.getParameter(processorRef.parameters.toggleIds[i]),
*toggle_relays.back(),
processorRef.state.undoManager));
}*/
}
}
static constexpr size_t numFramesBuffered = 5; static constexpr size_t numFramesBuffered = 5;
SpinLock::ScopedLockType lock{ processorRef.midiLock }; SpinLock::ScopedLockType lock{ processorRef.midiLock };
@ -108,6 +137,7 @@ private:
SinglePageBrowser* webComponent = nullptr; SinglePageBrowser* webComponent = nullptr;
std::deque<Array<var>> spectrumDataFrames; std::deque<Array<var>> spectrumDataFrames;
int reload_count = 0;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(WebViewPluginAudioProcessorEditor) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(WebViewPluginAudioProcessorEditor)
}; };

View File

@ -95,10 +95,15 @@ void WebViewPluginAudioProcessor::processBlock(juce::AudioBuffer<float>& buffer,
//============================================================================== //==============================================================================
void WebViewPluginAudioProcessor::getStateInformation(juce::MemoryBlock& destData) void WebViewPluginAudioProcessor::getStateInformation(juce::MemoryBlock& destData)
{ {
juce::ignoreUnused(destData); auto out_state = state.copyState();
std::unique_ptr<juce::XmlElement> xml(out_state.createXml());
copyXmlToBinary(*xml, destData);
} }
void WebViewPluginAudioProcessor::setStateInformation(const void* data, int sizeInBytes) void WebViewPluginAudioProcessor::setStateInformation(const void* data, int sizeInBytes)
{ {
juce::ignoreUnused(data, sizeInBytes); std::unique_ptr<juce::XmlElement> xmlState(getXmlFromBinary(data, sizeInBytes));
if (xmlState.get() != nullptr && xmlState->hasTagName(state.state.getType()))
state.replaceState(juce::ValueTree::fromXml(*xmlState));
} }