pluginbridge / Source /Plugin /PluginBridgeProcessor.h
RAM2118's picture
Fix: Add hidePluginGui() method to Processor
c27c0de verified
Raw History Blame
2.3 kB
#pragma once
#include <juce_audio_processors/juce_audio_processors.h>
#include <juce_dsp/juce_dsp.h>
#include "HelperConnection.h"
#include "McpServer.h"
#include "Constants.h"
class PluginBridgeProcessor : public juce::AudioProcessor
{
public:
PluginBridgeProcessor();
~PluginBridgeProcessor() override;
void prepareToPlay(double sampleRate, int samplesPerBlock) override;
void releaseResources() override;
void processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) override;
juce::AudioProcessorEditor* createEditor() override;
bool hasEditor() const override { return true; }
const juce::String getName() const override { return "PluginBridge"; }
bool acceptsMidi() const override { return true; }
bool producesMidi() const override { return true; }
double getTailLengthSeconds() const override { return 0.0; }
int getNumPrograms() override { return 1; }
int getCurrentProgram() override { return 0; }
void setCurrentProgram(int) override {}
const juce::String getProgramName(int) override { return {}; }
void changeProgramName(int, const juce::String&) override {}
void getStateInformation(juce::MemoryBlock& destData) override;
void setStateInformation(const void* data, int sizeInBytes) override;
bool isMcpServerRunning() const;
int getMcpServerPort() const;
HelperConnection& getHelperConnection() { return helper; }
void loadPlugin(const juce::String& pluginPath);
void unloadPlugin();
void showPluginGui();
void hidePluginGui();
bool isPluginLoaded() const { return pluginLoaded; }
juce::String getLoadedPluginName() const { return pluginName; }
int getLoadedPluginParamCount() const { return pluginParamCount; }
HelperConnection::State getConnectionState() const { return helper.getState(); }
juce::String getLastPluginPath() const { return pluginPath; }
juce::Array<juce::File> getInstalledPluginFiles() const;
private:
HelperConnection helper;
McpServer mcpServer;
bool pluginLoaded = false;
juce::String pluginName;
juce::String pluginPath;
int pluginParamCount = 0;
double currentSampleRate = 44100.0;
int currentBlockSize = 512;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginBridgeProcessor)
};