Gin
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
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
 
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 StandalonePluginHoldergetInstance ()
 

Public Attributes

juce::OptionalScopedPointer< juce::PropertySet > settings
 
std::unique_ptr< PluginWrapperprocessor
 
juce::AudioDeviceManager deviceManager
 
juce::AudioProcessorPlayer player
 
juce::Array< PluginInOutschannelConfiguration
 
bool processorHasPotentialFeedbackLoop = true
 
std::atomic< bool > muteInput { true }
 
juce::Value shouldMuteInput
 
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.

◆ ~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()

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

◆ getMuteInputValue()

juce::Value & StandalonePluginHolder::getMuteInputValue ( )

References shouldMuteInput.

◆ getProcessorHasPotentialFeedbackLoop()

bool StandalonePluginHolder::getProcessorHasPotentialFeedbackLoop ( ) const

◆ valueChanged()

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

References muteInput.

◆ 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()

static StandalonePluginHolder * StandalonePluginHolder::getInstance ( )
static

Member Data Documentation

◆ settings

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

◆ processor

std::unique_ptr<PluginWrapper> StandalonePluginHolder::processor

◆ deviceManager

juce::AudioDeviceManager StandalonePluginHolder::deviceManager

◆ player

juce::AudioProcessorPlayer 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().

◆ 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: