JUCE

- Main Page
- Related Pages
- Topics
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
StandalonePluginHolder Class Reference
juce_audio_plugin_client » Standalone

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

`#include <juce_StandaloneFilterWindow.h>`

Inheritance diagram for StandalonePluginHolder:

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

## Public Member Functions
| StandalonePluginHolder (PropertySet *settingsToUse, bool takeOwnershipOfSettings=true, const String &preferredDefaultDeviceName=String(), const AudioDeviceManager::AudioDeviceSetup *preferredSetupOptions=nullptr, const Array< PluginInOuts > &channels=Array< PluginInOuts >(), bool shouldAutoOpenMidiDevices=true)
| Creates an instance of the default plugin.
void | init (bool enableAudioInput, const String &preferredDefaultDeviceName)
| ~StandalonePluginHolder () override
virtual void | createPlugin ()
virtual void | deletePlugin ()
int | getNumInputChannels () const
int | getNumOutputChannels () const
Value & | getMuteInputValue ()
bool | getProcessorHasPotentialFeedbackLoop () const
void | valueChanged (Value &value) override
| Called when a Value object is changed.
File | getLastFile () const
void | setLastFile (const FileChooser &fc)
void | askUserToSaveState (const String &fileSuffix=String())
| Pops up a dialog letting the user save the processor's state to a file.
void | askUserToLoadState (const String &fileSuffix=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 String &preferredDefaultDeviceName, const AudioDeviceManager::AudioDeviceSetup *preferredSetupOptions)
void | savePluginState ()
void | reloadPluginState ()
void | switchToHostApplication ()
bool | isInterAppAudioConnected ()
Image | getIAAHostIcon (int size)

## Static Public Member Functions
static String | getFilePatterns (const String &fileSuffix)
static StandalonePluginHolder * | getInstance ()

## Public Attributes
OptionalScopedPointer< PropertySet > | settings
std::unique_ptr< AudioProcessor > | processor
AudioDeviceManager | deviceManager
AudioProcessorPlayer | player
Array< PluginInOuts > | channelConfiguration
bool | processorHasPotentialFeedbackLoop = true
std::atomic< bool > | muteInput { true }
Value | shouldMuteInput
AudioBuffer< float > | emptyBuffer
bool | autoOpenMidiDevices
std::unique_ptr< AudioDeviceManager::AudioDeviceSetup > | options
Array< MidiDeviceInfo > | lastMidiDevices
std::unique_ptr< FileChooser > | stateFileChooser
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 | ( | PropertySet * | settingsToUse,
|  | bool | takeOwnershipOfSettings = true,
|  | const String & | preferredDefaultDeviceName = String(),
|  | const AudioDeviceManager::AudioDeviceSetup * | preferredSetupOptions = nullptr,
|  | const Array< PluginInOuts > & | channels = 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.

References Value::addListener(), channelConfiguration, AudioProcessor::getMainBusNumInputChannels(), init(), RuntimePermissions::isGranted(), isInterAppAudioConnected(), RuntimePermissions::isRequired(), options, processor, RuntimePermissions::recordAudio, RuntimePermissions::request(), and shouldMuteInput.

## ◆ ~StandalonePluginHolder()

StandalonePluginHolder::~StandalonePluginHolder | ( |  | ) |
| override

References Timer::stopTimer().

## Member Function Documentation

## ◆ init()

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

References autoOpenMidiDevices, options, reloadPluginState(), startPlaying(), and Timer::startTimer().

Referenced by StandalonePluginHolder().

## ◆ createPlugin()

virtual void StandalonePluginHolder::createPlugin | ( |  | ) |
| virtual

Referenced by StandaloneFilterWindow::resetToDefaultState().

## ◆ deletePlugin()

virtual void StandalonePluginHolder::deletePlugin | ( |  | ) |
| virtual

Referenced by StandaloneFilterWindow::resetToDefaultState().

## ◆ getNumInputChannels()

int StandalonePluginHolder::getNumInputChannels | ( |  | ) | const

References channelConfiguration, AudioProcessor::getMainBusNumInputChannels(), and processor.

Referenced by reloadAudioDeviceState().

## ◆ getNumOutputChannels()

int StandalonePluginHolder::getNumOutputChannels | ( |  | ) | const

References channelConfiguration, AudioProcessor::getMainBusNumOutputChannels(), and processor.

Referenced by reloadAudioDeviceState().

## ◆ getFilePatterns()

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

References String::isEmpty(), and String::startsWithChar().

Referenced by askUserToLoadState(), and askUserToSaveState().

## ◆ getMuteInputValue()

Value & StandalonePluginHolder::getMuteInputValue | ( |  | ) |

References shouldMuteInput.

## ◆ getProcessorHasPotentialFeedbackLoop()

bool StandalonePluginHolder::getProcessorHasPotentialFeedbackLoop | ( |  | ) | const

References processorHasPotentialFeedbackLoop.

## ◆ valueChanged()

void StandalonePluginHolder::valueChanged | ( | Value & | value | ) |
| override virtual

Called when a Value object is changed.

Note that the Value object passed as a parameter may not be exactly the same object that you registered the listener with - it might be a copy that refers to the same underlying ValueSource. To find out, you can call Value::refersToSameSourceAs().

Implements Value::Listener.

References Value::getValue(), and muteInput.

## ◆ getLastFile()

File StandalonePluginHolder::getLastFile | ( |  | ) | const

References File::getSpecialLocation(), PropertySet::getValue(), settings, and File::userDocumentsDirectory.

Referenced by askUserToLoadState(), and askUserToSaveState().

## ◆ setLastFile()

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

References File::getFullPathName(), FileChooser::getResult(), settings, and PropertySet::setValue().

Referenced by askUserToLoadState(), and askUserToSaveState().

## ◆ askUserToSaveState()

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

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

References FileBrowserComponent::canSelectFiles, MemoryBlock::getData(), getFilePatterns(), getLastFile(), FileChooser::getResult(), MemoryBlock::getSize(), AudioProcessor::getStateInformation(), FileChooser::launchAsync(), MessageBoxOptions::makeOptionsOk(), messageBox, processor, File::replaceWithData(), FileBrowserComponent::saveMode, setLastFile(), AlertWindow::showScopedAsync(), stateFileChooser, TRANS, FileBrowserComponent::warnAboutOverwriting, and AlertWindow::WarningIcon.

Referenced by StandaloneFilterWindow::handleMenuResult().

## ◆ askUserToLoadState()

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

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

References FileBrowserComponent::canSelectFiles, MemoryBlock::getData(), getFilePatterns(), getLastFile(), FileChooser::getResult(), MemoryBlock::getSize(), FileChooser::launchAsync(), File::loadFileAsData(), MessageBoxOptions::makeOptionsOk(), messageBox, FileBrowserComponent::openMode, processor, setLastFile(), AudioProcessor::setStateInformation(), AlertWindow::showScopedAsync(), stateFileChooser, TRANS, and AlertWindow::WarningIcon.

Referenced by StandaloneFilterWindow::handleMenuResult().

## ◆ startPlaying()

void StandalonePluginHolder::startPlaying | ( |  | ) |

References deviceManager, AudioDeviceManager::getCurrentAudioDevice(), AudioProcessorPlayer::getMidiMessageCollector(), player, processor, AudioProcessor::setPlayHead(), and AudioProcessorPlayer::setProcessor().

Referenced by init(), and StandaloneFilterWindow::resetToDefaultState().

## ◆ stopPlaying()

void StandalonePluginHolder::stopPlaying | ( |  | ) |

References player, and AudioProcessorPlayer::setProcessor().

Referenced by StandaloneFilterWindow::resetToDefaultState(), and StandaloneFilterWindow::~StandaloneFilterWindow().

## ◆ showAudioSettingsDialog()

void StandalonePluginHolder::showAudioSettingsDialog | ( |  | ) |

Shows an audio properties dialog box modally.

References ResizableWindow::backgroundColourId, channelConfiguration, DialogWindow::LaunchOptions::content, deviceManager, DialogWindow::LaunchOptions::dialogBackgroundColour, DialogWindow::LaunchOptions::dialogTitle, DialogWindow::LaunchOptions::escapeKeyTriggersCloseButton, LookAndFeel::findColour(), AudioProcessor::getBus(), Component::getLookAndFeel(), jmax(), DialogWindow::LaunchOptions::launchAsync(), processor, DialogWindow::LaunchOptions::resizable, OptionalScopedPointer< ObjectType >::setOwned(), TRANS, and DialogWindow::LaunchOptions::useNativeTitleBar.

Referenced by StandaloneFilterWindow::handleMenuResult().

## ◆ saveAudioDeviceState()

void StandalonePluginHolder::saveAudioDeviceState | ( |  | ) |

References AudioDeviceManager::createStateXml(), deviceManager, Value::getValue(), settings, PropertySet::setValue(), and shouldMuteInput.

## ◆ reloadAudioDeviceState()

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

References deviceManager, PropertySet::getBoolValue(), getNumInputChannels(), getNumOutputChannels(), PropertySet::getXmlValue(), AudioDeviceManager::initialise(), AudioProcessor::isMidiEffect(), processor, settings, Value::setValue(), and shouldMuteInput.

## ◆ savePluginState()

void StandalonePluginHolder::savePluginState | ( |  | ) |

References AudioProcessor::getStateInformation(), processor, settings, PropertySet::setValue(), and MemoryBlock::toBase64Encoding().

Referenced by StandaloneFilterWindow::closeButtonPressed().

## ◆ reloadPluginState()

void StandalonePluginHolder::reloadPluginState | ( |  | ) |

References MemoryBlock::fromBase64Encoding(), MemoryBlock::getData(), MemoryBlock::getSize(), PropertySet::getValue(), processor, AudioProcessor::setStateInformation(), and settings.

Referenced by init().

## ◆ switchToHostApplication()

void StandalonePluginHolder::switchToHostApplication | ( |  | ) |

References deviceManager, and AudioDeviceManager::getCurrentAudioDevice().

## ◆ isInterAppAudioConnected()

bool StandalonePluginHolder::isInterAppAudioConnected | ( |  | ) |

References deviceManager, and AudioDeviceManager::getCurrentAudioDevice().

Referenced by StandalonePluginHolder().

## ◆ getIAAHostIcon()

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

References deviceManager, and AudioDeviceManager::getCurrentAudioDevice().

## Member Data Documentation

## ◆ settings

OptionalScopedPointer<PropertySet> StandalonePluginHolder::settings

Referenced by getLastFile(), reloadAudioDeviceState(), reloadPluginState(), StandaloneFilterWindow::resetToDefaultState(), saveAudioDeviceState(), savePluginState(), setLastFile(), and StandaloneFilterWindow::~StandaloneFilterWindow().

## ◆ processor

std::unique_ptr<AudioProcessor> StandalonePluginHolder::processor

Referenced by askUserToLoadState(), askUserToSaveState(), StandaloneFilterWindow::getAudioProcessor(), getNumInputChannels(), getNumOutputChannels(), reloadAudioDeviceState(), reloadPluginState(), savePluginState(), showAudioSettingsDialog(), StandalonePluginHolder(), and startPlaying().

## ◆ deviceManager

AudioDeviceManager StandalonePluginHolder::deviceManager

Referenced by StandaloneFilterWindow::getDeviceManager(), getIAAHostIcon(), isInterAppAudioConnected(), reloadAudioDeviceState(), saveAudioDeviceState(), showAudioSettingsDialog(), startPlaying(), and switchToHostApplication().

## ◆ player

AudioProcessorPlayer StandalonePluginHolder::player

Referenced by startPlaying(), and stopPlaying().

## ◆ channelConfiguration

Array<PluginInOuts> StandalonePluginHolder::channelConfiguration

Referenced by getNumInputChannels(), getNumOutputChannels(), showAudioSettingsDialog(), and StandalonePluginHolder().

## ◆ processorHasPotentialFeedbackLoop

bool StandalonePluginHolder::processorHasPotentialFeedbackLoop = true

Referenced by getProcessorHasPotentialFeedbackLoop().

## ◆ muteInput

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

Referenced by valueChanged().

## ◆ shouldMuteInput

Value StandalonePluginHolder::shouldMuteInput

Referenced by getMuteInputValue(), reloadAudioDeviceState(), saveAudioDeviceState(), and StandalonePluginHolder().

## ◆ emptyBuffer

AudioBuffer<float> StandalonePluginHolder::emptyBuffer

## ◆ autoOpenMidiDevices

bool StandalonePluginHolder::autoOpenMidiDevices

Referenced by init().

## ◆ options

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

Referenced by init(), and StandalonePluginHolder().

## ◆ lastMidiDevices

Array<MidiDeviceInfo> StandalonePluginHolder::lastMidiDevices

## ◆ stateFileChooser

std::unique_ptr<FileChooser> StandalonePluginHolder::stateFileChooser

Referenced by askUserToLoadState(), and askUserToSaveState().

## ◆ messageBox

ScopedMessageBox StandalonePluginHolder::messageBox

Referenced by askUserToLoadState(), and askUserToSaveState().

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

- juce_StandaloneFilterWindow.h