Browse Source

Implement JUCE_AUDIOPROCESSOR_NO_GUI

Signed-off-by: falkTX <falktx@falktx.com>
v6.1.6-distrho
falkTX 2 years ago
parent
commit
91b463b64d
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
10 changed files with 56 additions and 11 deletions
  1. +21
    -8
      modules/juce_audio_processors/juce_audio_processors.cpp
  2. +9
    -3
      modules/juce_audio_processors/juce_audio_processors.h
  3. +4
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
  4. +8
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessor.h
  5. +2
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
  6. +4
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
  7. +2
    -0
      modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp
  8. +2
    -0
      modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h
  9. +2
    -0
      modules/juce_audio_processors/utilities/juce_PluginHostType.cpp
  10. +2
    -0
      modules/juce_audio_processors/utilities/juce_PluginHostType.h

+ 21
- 8
modules/juce_audio_processors/juce_audio_processors.cpp View File

@@ -34,7 +34,9 @@
#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1
#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1
#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1
#endif
#define JUCE_GUI_BASICS_INCLUDE_SCOPED_THREAD_DPI_AWARENESS_SETTER 1
#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1
@@ -49,7 +51,7 @@
#endif
#endif
#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD)
#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD) && ! JUCE_AUDIOPROCESSOR_NO_GUI
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <sys/utsname.h>
@@ -188,17 +190,21 @@ private:
#include "format_types/juce_LegacyAudioParameter.cpp"
#include "processors/juce_AudioProcessor.cpp"
#include "processors/juce_AudioPluginInstance.cpp"
#include "processors/juce_AudioProcessorEditor.cpp"
#include "processors/juce_AudioProcessorGraph.cpp"
#include "processors/juce_GenericAudioProcessorEditor.cpp"
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#include "processors/juce_AudioProcessorEditor.cpp"
#include "processors/juce_GenericAudioProcessorEditor.cpp"
#endif
#include "processors/juce_PluginDescription.cpp"
#include "format_types/juce_LADSPAPluginFormat.cpp"
#include "format_types/juce_VSTPluginFormat.cpp"
#include "format_types/juce_VST3PluginFormat.cpp"
#include "format_types/juce_AudioUnitPluginFormat.mm"
#include "scanning/juce_KnownPluginList.cpp"
#include "scanning/juce_PluginDirectoryScanner.cpp"
#include "scanning/juce_PluginListComponent.cpp"
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#include "scanning/juce_KnownPluginList.cpp"
#include "scanning/juce_PluginDirectoryScanner.cpp"
#include "scanning/juce_PluginListComponent.cpp"
#endif
#include "processors/juce_AudioProcessorParameterGroup.cpp"
#include "utilities/juce_AudioProcessorParameterWithID.cpp"
#include "utilities/juce_RangedAudioParameter.cpp"
@@ -206,6 +212,13 @@ private:
#include "utilities/juce_AudioParameterInt.cpp"
#include "utilities/juce_AudioParameterBool.cpp"
#include "utilities/juce_AudioParameterChoice.cpp"
#include "utilities/juce_ParameterAttachments.cpp"
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#include "utilities/juce_ParameterAttachments.cpp"
#endif
#include "utilities/juce_AudioProcessorValueTreeState.cpp"
#include "utilities/juce_PluginHostType.cpp"
#if JUCE_AUDIOPROCESSOR_NO_GUI
// commonly used classes in DSP code
namespace juce { Colour::Colour(juce::uint32) noexcept {} }
#endif

+ 9
- 3
modules/juce_audio_processors/juce_audio_processors.h View File

@@ -122,14 +122,18 @@
#include "processors/juce_AudioProcessorParameter.h"
#include "processors/juce_HostedAudioProcessorParameter.h"
#include "processors/juce_AudioProcessorEditorHostContext.h"
#include "processors/juce_AudioProcessorEditor.h"
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#include "processors/juce_AudioProcessorEditor.h"
#endif
#include "processors/juce_AudioProcessorListener.h"
#include "processors/juce_AudioProcessorParameterGroup.h"
#include "processors/juce_AudioProcessor.h"
#include "processors/juce_PluginDescription.h"
#include "processors/juce_AudioPluginInstance.h"
#include "processors/juce_AudioProcessorGraph.h"
#include "processors/juce_GenericAudioProcessorEditor.h"
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#include "processors/juce_GenericAudioProcessorEditor.h"
#endif
#include "format/juce_AudioPluginFormat.h"
#include "format/juce_AudioPluginFormatManager.h"
#include "scanning/juce_KnownPluginList.h"
@@ -146,6 +150,8 @@
#include "utilities/juce_AudioParameterInt.h"
#include "utilities/juce_AudioParameterBool.h"
#include "utilities/juce_AudioParameterChoice.h"
#include "utilities/juce_ParameterAttachments.h"
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
#include "utilities/juce_ParameterAttachments.h"
#endif
#include "utilities/juce_AudioProcessorValueTreeState.h"
#include "utilities/juce_PluginHostType.h"

+ 4
- 0
modules/juce_audio_processors/processors/juce_AudioProcessor.cpp View File

@@ -50,12 +50,14 @@ AudioProcessor::AudioProcessor (const BusesProperties& ioConfig)
AudioProcessor::~AudioProcessor()
{
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
{
const ScopedLock sl (activeEditorLock);
// ooh, nasty - the editor should have been deleted before its AudioProcessor.
jassert (activeEditor == nullptr);
}
#endif
#if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
// This will fail if you've called beginParameterChangeGesture() for one
@@ -865,6 +867,7 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang
processorLayoutsChanged();
}
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept
{
@@ -901,6 +904,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded()
return ed;
}
#endif
//==============================================================================
void AudioProcessor::getCurrentProgramStateInformation (juce::MemoryBlock& destData)


+ 8
- 0
modules/juce_audio_processors/processors/juce_AudioProcessor.h View File

@@ -928,6 +928,7 @@ public:
*/
virtual void setNonRealtime (bool isNonRealtime) noexcept;
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
/** Creates the processor's GUI.
@@ -977,6 +978,7 @@ public:
This may call createEditor() internally to create the component.
*/
AudioProcessorEditor* createEditorIfNeeded();
#endif
//==============================================================================
/** Returns the default number of steps for a parameter.
@@ -1193,9 +1195,11 @@ public:
virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return {}; }
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
/** Not for public use - this is called before deleting an editor component. */
void editorBeingDeleted (AudioProcessorEditor*) noexcept;
#endif
/** Flags to indicate the type of plugin context in which a processor is being used. */
enum WrapperType
@@ -1226,7 +1230,9 @@ public:
struct TrackProperties
{
String name; // The name of the track - this will be empty if the track name is not known
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
Colour colour; // The colour of the track - this will be transparentBlack if the colour is not known
#endif
// other properties may be added in the future
};
@@ -1469,7 +1475,9 @@ private:
//==============================================================================
Array<AudioProcessorListener*> listeners;
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
Component::SafePointer<AudioProcessorEditor> activeEditor;
#endif
double currentSampleRate = 0;
int blockSize = 0, latencySamples = 0;
bool suspended = false;


+ 2
- 0
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp View File

@@ -1557,8 +1557,10 @@ bool AudioProcessorGraph::AudioGraphIOProcessor::producesMidi() const
bool AudioProcessorGraph::AudioGraphIOProcessor::isInput() const noexcept { return type == audioInputNode || type == midiInputNode; }
bool AudioProcessorGraph::AudioGraphIOProcessor::isOutput() const noexcept { return type == audioOutputNode || type == midiOutputNode; }
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
bool AudioProcessorGraph::AudioGraphIOProcessor::hasEditor() const { return false; }
AudioProcessorEditor* AudioProcessorGraph::AudioGraphIOProcessor::createEditor() { return nullptr; }
#endif
int AudioProcessorGraph::AudioGraphIOProcessor::getNumPrograms() { return 0; }
int AudioProcessorGraph::AudioGraphIOProcessor::getCurrentProgram() { return 0; }


+ 4
- 0
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h View File

@@ -357,8 +357,10 @@ public:
bool acceptsMidi() const override;
bool producesMidi() const override;
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
bool hasEditor() const override;
AudioProcessorEditor* createEditor() override;
#endif
int getNumPrograms() override;
int getCurrentProgram() override;
@@ -394,8 +396,10 @@ public:
bool acceptsMidi() const override;
bool producesMidi() const override;
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
bool hasEditor() const override { return false; }
AudioProcessorEditor* createEditor() override { return nullptr; }
#endif
int getNumPrograms() override { return 0; }
int getCurrentProgram() override { return 0; }
void setCurrentProgram (int) override { }


+ 2
- 0
modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp View File

@@ -484,6 +484,7 @@ void AudioProcessorValueTreeState::timerCallback()
}
//==============================================================================
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
template <typename Attachment, typename Control>
std::unique_ptr<Attachment> makeAttachment (const AudioProcessorValueTreeState& stateToUse,
const String& parameterID,
@@ -516,6 +517,7 @@ AudioProcessorValueTreeState::ButtonAttachment::ButtonAttachment (AudioProcessor
: attachment (makeAttachment<ButtonParameterAttachment> (stateToUse, parameterID, button))
{
}
#endif
//==============================================================================
//==============================================================================


+ 2
- 0
modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h View File

@@ -431,6 +431,7 @@ public:
friend class AudioProcessorValueTreeState::ParameterAdapter;
};
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
/** An object of this class maintains a connection between a Slider and a parameter
in an AudioProcessorValueTreeState.
@@ -498,6 +499,7 @@ public:
std::unique_ptr<ButtonParameterAttachment> attachment;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ButtonAttachment)
};
#endif
private:
//==============================================================================


+ 2
- 0
modules/juce_audio_processors/utilities/juce_PluginHostType.cpp View File

@@ -70,6 +70,7 @@ bool PluginHostType::isInAAXAudioSuite (AudioProcessor& processor)
return false;
}
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
Image PluginHostType::getHostIcon (int size) const
{
ignoreUnused (size);
@@ -86,6 +87,7 @@ Image PluginHostType::getHostIcon (int size) const
return Image();
}
#endif
const char* PluginHostType::getHostDescription() const noexcept
{


+ 2
- 0
modules/juce_audio_processors/utilities/juce_PluginHostType.h View File

@@ -207,8 +207,10 @@ public:
bool isInterAppAudioConnected() const;
/** Switches to the host application when Inter-App Audio is used on iOS. */
void switchToHostApplication() const;
#if ! JUCE_AUDIOPROCESSOR_NO_GUI
/** Gets the host app's icon when Inter-App Audio is used on iOS. */
Image getHostIcon (int size) const;
#endif
//==============================================================================
/** Returns the complete absolute path of the host application executable. */


Loading…
Cancel
Save