Photosine 0.5
Loading...
Searching...
No Matches
PluginInterface::PluginEditorComponent Class Reference

#include <PluginEditorComponent.h>

Inheritance diagram for PluginInterface::PluginEditorComponent:

Public Member Functions

 PluginEditorComponent ()
 ~PluginEditorComponent () override
juce::Component virtual members
void paint (juce::Graphics &) override
void resized () override
juce::ScrollBar::Listener virtual members
void scrollBarMoved (juce::ScrollBar *scrollBarThatHasMoved, double newRangeStart) override

Private Member Functions

void timerCallback () override
void selectPlugin (juce::String pluginID)
void setPluginInstance (std::shared_ptr< PluginManagerInstance > newInstance)
void embedNativeWindow ()
juce::ValueTree::Listener virtual members
void valueTreePropertyChanged (juce::ValueTree &treeWhosePropertyHasChanged, const juce::Identifier &property) override
void valueTreeChildAdded (juce::ValueTree &parentTree, juce::ValueTree &childWhichHasBeenAdded) override
void valueTreeChildRemoved (juce::ValueTree &parentTree, juce::ValueTree &childWhichHasBeenRemoved, int indexFromWhichChildWasRemoved) override
void valueTreeChildOrderChanged (juce::ValueTree &parentTreeWhoseChildrenHaveMoved, int oldIndex, int newIndex) override

Private Attributes

std::shared_ptr< PluginManagerpluginManager
std::shared_ptr< PluginManagerInstancecurrentInstance
juce::AudioProcessorEditor * currentEditor
juce::Viewport editorViewport
std::unique_ptr< PluginEditorHiddenWindoweditorWindow
std::unique_ptr< MacNativeWindownativeWindow
juce::Component blankComponent
juce::ValueTree projectValueTree

Detailed Description

Component that contains the selected plugin's editor. Embeds a heavy native window due to juce::Component rendering limitations around clipping.

Constructor & Destructor Documentation

◆ PluginEditorComponent()

PluginInterface::PluginEditorComponent::PluginEditorComponent ( )

◆ ~PluginEditorComponent()

PluginInterface::PluginEditorComponent::~PluginEditorComponent ( )
override

Member Function Documentation

◆ embedNativeWindow()

void PluginInterface::PluginEditorComponent::embedNativeWindow ( )
private

Embeds PluginEditorHiddenWindow into main window as a child window using native handles. On MacOS, this uses MacNativeWindow to run native Objective-C and NSView/NSWindow methods.

◆ paint()

void PluginInterface::PluginEditorComponent::paint ( juce::Graphics & g)
override

◆ resized()

void PluginInterface::PluginEditorComponent::resized ( )
override

◆ scrollBarMoved()

void PluginInterface::PluginEditorComponent::scrollBarMoved ( juce::ScrollBar * scrollBarThatHasMoved,
double newRangeStart )
override

◆ selectPlugin()

void PluginInterface::PluginEditorComponent::selectPlugin ( juce::String pluginID)
private

Checks if the plugin instance for pluginID has finished loading, then calls setPluginInstance() if it is not nullptr

◆ setPluginInstance()

void PluginInterface::PluginEditorComponent::setPluginInstance ( std::shared_ptr< PluginManagerInstance > newInstance)
private

Adds plugin editor to PluginEditorHiddenWindow and call embedNativeWindow()

◆ timerCallback()

void PluginInterface::PluginEditorComponent::timerCallback ( )
overrideprivate

◆ valueTreeChildAdded()

void PluginInterface::PluginEditorComponent::valueTreeChildAdded ( juce::ValueTree & parentTree,
juce::ValueTree & childWhichHasBeenAdded )
overrideprivate

◆ valueTreeChildOrderChanged()

void PluginInterface::PluginEditorComponent::valueTreeChildOrderChanged ( juce::ValueTree & parentTreeWhoseChildrenHaveMoved,
int oldIndex,
int newIndex )
overrideprivate

◆ valueTreeChildRemoved()

void PluginInterface::PluginEditorComponent::valueTreeChildRemoved ( juce::ValueTree & parentTree,
juce::ValueTree & childWhichHasBeenRemoved,
int indexFromWhichChildWasRemoved )
overrideprivate

◆ valueTreePropertyChanged()

void PluginInterface::PluginEditorComponent::valueTreePropertyChanged ( juce::ValueTree & treeWhosePropertyHasChanged,
const juce::Identifier & property )
overrideprivate

Member Data Documentation

◆ blankComponent

juce::Component PluginInterface::PluginEditorComponent::blankComponent
private

◆ currentEditor

juce::AudioProcessorEditor* PluginInterface::PluginEditorComponent::currentEditor
private

◆ currentInstance

std::shared_ptr<PluginManagerInstance> PluginInterface::PluginEditorComponent::currentInstance
private

◆ editorViewport

juce::Viewport PluginInterface::PluginEditorComponent::editorViewport
private

◆ editorWindow

std::unique_ptr<PluginEditorHiddenWindow> PluginInterface::PluginEditorComponent::editorWindow
private

◆ nativeWindow

std::unique_ptr<MacNativeWindow> PluginInterface::PluginEditorComponent::nativeWindow
private

◆ pluginManager

std::shared_ptr<PluginManager> PluginInterface::PluginEditorComponent::pluginManager
private

◆ projectValueTree

juce::ValueTree PluginInterface::PluginEditorComponent::projectValueTree
private

Local object holding the project value tree so it's in scope for the Listener subclass.


The documentation for this class was generated from the following files: