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.
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 |
|
inline |
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 autoOpenMidiDevices, channelConfiguration, init(), juce::RuntimePermissions::isGranted(), isInterAppAudioConnected(), juce::RuntimePermissions::isRequired(), jassert, JUCE_ANDROID, options, processor, juce::RuntimePermissions::recordAudio, juce::RuntimePermissions::request(), settings, and shouldMuteInput.
Referenced by getInstance().
|
inlineoverride |
References juce::Timer::stopTimer().
|
inline |
References autoOpenMidiDevices, options, reloadPluginState(), startPlaying(), and juce::Timer::startTimer().
Referenced by StandalonePluginHolder().
|
inlinevirtual |
|
inlinevirtual |
|
inline |
References channelConfiguration, and processor.
Referenced by reloadAudioDeviceState().
|
inline |
References channelConfiguration, and processor.
Referenced by reloadAudioDeviceState().
References juce::String::isEmpty(), and juce::String::startsWithChar().
Referenced by askUserToLoadState(), and askUserToSaveState().
|
inline |
References shouldMuteInput.
|
inline |
References processorHasPotentialFeedbackLoop.
|
inlineoverridevirtual |
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 juce::Value::Listener.
References juce::Value::getValue(), and muteInput.
|
inline |
References juce::File::getSpecialLocation(), settings, and juce::File::userDocumentsDirectory.
Referenced by askUserToLoadState(), and askUserToSaveState().
|
inline |
References juce::File::getFullPathName(), juce::FileChooser::getResult(), and settings.
Referenced by askUserToLoadState(), and askUserToSaveState().
|
inline |
Pops up a dialog letting the user save the processor's state to a file.
References juce::FileBrowserComponent::canSelectFiles, juce::MemoryBlock::getData(), getFilePatterns(), getLastFile(), juce::FileChooser::getResult(), juce::MemoryBlock::getSize(), juce::MessageBoxOptions::makeOptionsOk(), messageBox, processor, juce::File::replaceWithData(), juce::FileBrowserComponent::saveMode, setLastFile(), juce::AlertWindow::showScopedAsync(), stateFileChooser, TRANS, juce::FileBrowserComponent::warnAboutOverwriting, and juce::AlertWindow::WarningIcon.
|
inline |
Pops up a dialog letting the user re-load the processor's state from a file.
References juce::FileBrowserComponent::canSelectFiles, juce::MemoryBlock::getData(), getFilePatterns(), getLastFile(), juce::FileChooser::getResult(), juce::MemoryBlock::getSize(), juce::File::loadFileAsData(), juce::MessageBoxOptions::makeOptionsOk(), messageBox, juce::FileBrowserComponent::openMode, processor, setLastFile(), juce::AlertWindow::showScopedAsync(), stateFileChooser, TRANS, and juce::AlertWindow::WarningIcon.
|
inline |
References deviceManager, player, and processor.
Referenced by init().
|
inline |
References player.
|
inline |
Shows an audio properties dialog box modally.
References juce::ResizableWindow::backgroundColourId, channelConfiguration, juce::DialogWindow::LaunchOptions::content, deviceManager, juce::DialogWindow::LaunchOptions::dialogBackgroundColour, juce::DialogWindow::LaunchOptions::dialogTitle, juce::DialogWindow::LaunchOptions::escapeKeyTriggersCloseButton, juce::jmax(), juce::DialogWindow::LaunchOptions::launchAsync(), processor, juce::DialogWindow::LaunchOptions::resizable, TRANS, and juce::DialogWindow::LaunchOptions::useNativeTitleBar.
|
inline |
References deviceManager, settings, and shouldMuteInput.
|
inline |
References deviceManager, getNumInputChannels(), getNumOutputChannels(), processor, settings, and shouldMuteInput.
|
inline |
References processor, settings, and juce::MemoryBlock::toBase64Encoding().
|
inline |
References juce::MemoryBlock::fromBase64Encoding(), juce::MemoryBlock::getData(), juce::MemoryBlock::getSize(), processor, and settings.
Referenced by init().
|
inline |
References deviceManager.
|
inline |
References deviceManager.
Referenced by StandalonePluginHolder().
|
inline |
References deviceManager.
|
inlinestatic |
References StandalonePluginHolder().
| OptionalScopedPointer<PropertySet> juce::StandalonePluginHolder::settings |
| std::unique_ptr<AudioProcessor> juce::StandalonePluginHolder::processor |
| AudioDeviceManager juce::StandalonePluginHolder::deviceManager |
| AudioProcessorPlayer juce::StandalonePluginHolder::player |
Referenced by startPlaying(), and stopPlaying().
| Array<PluginInOuts> juce::StandalonePluginHolder::channelConfiguration |
Referenced by getNumInputChannels(), getNumOutputChannels(), showAudioSettingsDialog(), and StandalonePluginHolder().
| bool juce::StandalonePluginHolder::processorHasPotentialFeedbackLoop = true |
Referenced by getProcessorHasPotentialFeedbackLoop().
| std::atomic<bool> juce::StandalonePluginHolder::muteInput { true } |
Referenced by valueChanged().
| Value juce::StandalonePluginHolder::shouldMuteInput |
Referenced by getMuteInputValue(), reloadAudioDeviceState(), saveAudioDeviceState(), and StandalonePluginHolder().
| AudioBuffer<float> juce::StandalonePluginHolder::emptyBuffer |
| bool juce::StandalonePluginHolder::autoOpenMidiDevices |
Referenced by init(), and StandalonePluginHolder().
| std::unique_ptr<AudioDeviceManager::AudioDeviceSetup> juce::StandalonePluginHolder::options |
Referenced by init(), and StandalonePluginHolder().
| Array<MidiDeviceInfo> juce::StandalonePluginHolder::lastMidiDevices |
| std::unique_ptr<FileChooser> juce::StandalonePluginHolder::stateFileChooser |
Referenced by askUserToLoadState(), and askUserToSaveState().
| ScopedMessageBox juce::StandalonePluginHolder::messageBox |
Referenced by askUserToLoadState(), and askUserToSaveState().