Gin
Loading...
Searching...
No Matches
StandalonePluginHolder Class Reference

An object that creates and plays a standalone instance of an AudioProcessor. More...

#include <gin_standalonepluginholder.h>

Inherits juce::AudioIODeviceCallback, juce::Timer, and juce::Value::Listener.

Classes

struct  PluginInOuts
 Structure used for the number of inputs and outputs. More...

Public Member Functions

 StandalonePluginHolder (juce::PropertySet *settingsToUse, bool takeOwnershipOfSettings=true, const juce::String &preferredDefaultDeviceName=juce::String(), const juce::AudioDeviceManager::AudioDeviceSetup *preferredSetupOptions=nullptr, const juce::Array< PluginInOuts > &channels=juce::Array< PluginInOuts >(), bool shouldAutoOpenMidiDevices=true)
 Creates an instance of the default plugin.
 ~StandalonePluginHolder () override
void init (bool enableAudioInput, const juce::String &preferredDefaultDeviceName)
void createPlugin ()
void deletePlugin ()
int getNumInputChannels () const
int getNumOutputChannels () const
juce::Value & getMuteInputValue ()
bool getProcessorHasPotentialFeedbackLoop () const
juce::Value & getShowSidebarValue ()
void valueChanged (juce::Value &value) override
juce::File getLastFile () const
void setLastFile (const juce::FileChooser &fc)
void askUserToSaveState (const juce::String &fileSuffix=juce::String())
 Pops up a dialog letting the user save the processor's state to a file.
void askUserToLoadState (const juce::String &fileSuffix=juce::String())
 Pops up a dialog letting the user re-load the processor's state from a file.
void startPlaying ()
void stopPlaying ()
void showAudioSettingsDialog ()
 Shows an audio properties dialog box modally.
void saveAudioDeviceState ()
void reloadAudioDeviceState (bool enableAudioInput, const juce::String &preferredDefaultDeviceName, const juce::AudioDeviceManager::AudioDeviceSetup *preferredSetupOptions)
void savePluginState ()
void reloadPluginState ()
void switchToHostApplication ()
bool isInterAppAudioConnected ()
juce::Image getIAAHostIcon (int size)

Static Public Member Functions

static juce::String getFilePatterns (const juce::String &fileSuffix)
static StandalonePluginHolder * getInstance ()

Public Attributes

juce::OptionalScopedPointer< juce::PropertySet > settings
std::unique_ptr< juce::AudioProcessor > processor
juce::AudioDeviceManager deviceManager
gin::StandaloneAudioProcessorPlayer player
juce::Array< PluginInOuts > channelConfiguration
bool processorHasPotentialFeedbackLoop = true
std::atomic< bool > muteInput { true }
juce::Value shouldMuteInput
juce::Value shouldShowSidebar
juce::AudioBuffer< float > emptyBuffer
bool autoOpenMidiDevices
std::unique_ptr< juce::AudioDeviceManager::AudioDeviceSetup > options
juce::Array< juce::MidiDeviceInfo > lastMidiDevices
std::unique_ptr< juce::FileChooser > stateFileChooser
juce::ScopedMessageBox messageBox

Detailed Description

An object that creates and plays a standalone instance of an AudioProcessor.

The object will create your processor using the same createPluginFilter() function that the other plugin wrappers use, and will run it through the computer's audio/MIDI devices using AudioDeviceManager and AudioProcessorPlayer.

Constructor & Destructor Documentation

◆ StandalonePluginHolder()

StandalonePluginHolder::StandalonePluginHolder ( juce::PropertySet * settingsToUse,
bool takeOwnershipOfSettings = true,
const juce::String & preferredDefaultDeviceName = juce::String(),
const juce::AudioDeviceManager::AudioDeviceSetup * preferredSetupOptions = nullptr,
const juce::Array< PluginInOuts > & channels = juce::Array< PluginInOuts >(),
bool shouldAutoOpenMidiDevices = true )

Creates an instance of the default plugin.

The settings object can be a PropertySet that the class should use to store its settings - the takeOwnershipOfSettings indicates whether this object will delete the settings automatically when no longer needed. The settings can also be nullptr.

A default device name can be passed in.

Preferably a complete setup options object can be used, which takes precedence over the preferredDefaultDeviceName and allows you to select the input & output device names, sample rate, buffer size etc.

In all instances, the settingsToUse will take precedence over the "preferred" options if not null.

Referenced by getInstance().

◆ ~StandalonePluginHolder()

StandalonePluginHolder::~StandalonePluginHolder ( )
override

Member Function Documentation

◆ init()

void StandalonePluginHolder::init ( bool enableAudioInput,
const juce::String & preferredDefaultDeviceName )

◆ createPlugin()

void StandalonePluginHolder::createPlugin ( )

◆ deletePlugin()

void StandalonePluginHolder::deletePlugin ( )

◆ getNumInputChannels()

int StandalonePluginHolder::getNumInputChannels ( ) const

◆ getNumOutputChannels()

int StandalonePluginHolder::getNumOutputChannels ( ) const

◆ getFilePatterns()

juce::String StandalonePluginHolder::getFilePatterns ( const juce::String & fileSuffix)
static

◆ getMuteInputValue()

juce::Value & StandalonePluginHolder::getMuteInputValue ( )

References shouldMuteInput.

◆ getProcessorHasPotentialFeedbackLoop()

bool StandalonePluginHolder::getProcessorHasPotentialFeedbackLoop ( ) const

◆ getShowSidebarValue()

juce::Value & StandalonePluginHolder::getShowSidebarValue ( )

References shouldShowSidebar.

◆ valueChanged()

void StandalonePluginHolder::valueChanged ( juce::Value & value)
override

References muteInput, and shouldMuteInput.

◆ getLastFile()

juce::File StandalonePluginHolder::getLastFile ( ) const

◆ setLastFile()

void StandalonePluginHolder::setLastFile ( const juce::FileChooser & fc)

◆ askUserToSaveState()

void StandalonePluginHolder::askUserToSaveState ( const juce::String & fileSuffix = juce::String())

Pops up a dialog letting the user save the processor's state to a file.

◆ askUserToLoadState()

void StandalonePluginHolder::askUserToLoadState ( const juce::String & fileSuffix = juce::String())

Pops up a dialog letting the user re-load the processor's state from a file.

◆ startPlaying()

void StandalonePluginHolder::startPlaying ( )

◆ stopPlaying()

void StandalonePluginHolder::stopPlaying ( )

◆ showAudioSettingsDialog()

void StandalonePluginHolder::showAudioSettingsDialog ( )

Shows an audio properties dialog box modally.

◆ saveAudioDeviceState()

void StandalonePluginHolder::saveAudioDeviceState ( )

◆ reloadAudioDeviceState()

void StandalonePluginHolder::reloadAudioDeviceState ( bool enableAudioInput,
const juce::String & preferredDefaultDeviceName,
const juce::AudioDeviceManager::AudioDeviceSetup * preferredSetupOptions )

◆ savePluginState()

void StandalonePluginHolder::savePluginState ( )

◆ reloadPluginState()

void StandalonePluginHolder::reloadPluginState ( )

◆ switchToHostApplication()

void StandalonePluginHolder::switchToHostApplication ( )

◆ isInterAppAudioConnected()

bool StandalonePluginHolder::isInterAppAudioConnected ( )

◆ getIAAHostIcon()

juce::Image StandalonePluginHolder::getIAAHostIcon ( int size)

◆ getInstance()

StandalonePluginHolder * StandalonePluginHolder::getInstance ( )
static

Member Data Documentation

◆ settings

juce::OptionalScopedPointer<juce::PropertySet> StandalonePluginHolder::settings

◆ processor

std::unique_ptr<juce::AudioProcessor> StandalonePluginHolder::processor

◆ deviceManager

juce::AudioDeviceManager StandalonePluginHolder::deviceManager

◆ player

gin::StandaloneAudioProcessorPlayer StandalonePluginHolder::player

◆ channelConfiguration

juce::Array<PluginInOuts> StandalonePluginHolder::channelConfiguration

◆ processorHasPotentialFeedbackLoop

bool StandalonePluginHolder::processorHasPotentialFeedbackLoop = true

◆ muteInput

std::atomic<bool> StandalonePluginHolder::muteInput { true }

Referenced by valueChanged().

◆ shouldMuteInput

juce::Value StandalonePluginHolder::shouldMuteInput

Referenced by getMuteInputValue(), and valueChanged().

◆ shouldShowSidebar

juce::Value StandalonePluginHolder::shouldShowSidebar

Referenced by getShowSidebarValue().

◆ emptyBuffer

juce::AudioBuffer<float> StandalonePluginHolder::emptyBuffer

◆ autoOpenMidiDevices

bool StandalonePluginHolder::autoOpenMidiDevices

◆ options

std::unique_ptr<juce::AudioDeviceManager::AudioDeviceSetup> StandalonePluginHolder::options

◆ lastMidiDevices

juce::Array<juce::MidiDeviceInfo> StandalonePluginHolder::lastMidiDevices

◆ stateFileChooser

std::unique_ptr<juce::FileChooser> StandalonePluginHolder::stateFileChooser

◆ messageBox

juce::ScopedMessageBox StandalonePluginHolder::messageBox

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