diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp index 1f7abb3dca..4ba5e87740 100644 --- a/modules/juce_audio_processors/juce_audio_processors.cpp +++ b/modules/juce_audio_processors/juce_audio_processors.cpp @@ -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 #include "juce_audio_processors.h" @@ -241,9 +243,11 @@ struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewCompone #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" @@ -251,6 +255,13 @@ struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewCompone #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 diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h index e543a92fdb..4b3c999c0c 100644 --- a/modules/juce_audio_processors/juce_audio_processors.h +++ b/modules/juce_audio_processors/juce_audio_processors.h @@ -115,7 +115,11 @@ #endif //============================================================================== -#include "processors/juce_AudioProcessorEditor.h" +#if JUCE_AUDIOPROCESSOR_NO_GUI +namespace juce { class AudioProcessor; } +#else + #include "processors/juce_AudioProcessorEditor.h" +#endif #include "processors/juce_AudioProcessorListener.h" #include "processors/juce_AudioProcessorParameter.h" #include "processors/juce_AudioProcessorParameterGroup.h" @@ -123,7 +127,9 @@ #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" @@ -140,6 +146,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" diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h index 849b77d3cc..14d1d37575 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h @@ -1228,7 +1228,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 }; diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp index 2d4bfac237..906aa8a3b1 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp @@ -483,6 +483,7 @@ void AudioProcessorValueTreeState::timerCallback() : jlimit (50, 500, getTimerInterval() + 20)); } +#if ! JUCE_AUDIOPROCESSOR_NO_GUI //============================================================================== template std::unique_ptr makeAttachment (const AudioProcessorValueTreeState& stateToUse, @@ -516,6 +517,7 @@ AudioProcessorValueTreeState::ButtonAttachment::ButtonAttachment (AudioProcessor : attachment (makeAttachment (stateToUse, parameterID, button)) { } +#endif //============================================================================== //============================================================================== diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h index 156e3ea002..4266b0be51 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h @@ -429,6 +429,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. @@ -496,6 +497,7 @@ public: std::unique_ptr attachment; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ButtonAttachment) }; + #endif private: //============================================================================== diff --git a/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp b/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp index c7092044a5..bb5b3c3de9 100644 --- a/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp +++ b/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp @@ -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 { diff --git a/modules/juce_audio_processors/utilities/juce_PluginHostType.h b/modules/juce_audio_processors/utilities/juce_PluginHostType.h index b549a3041e..04956582ee 100644 --- a/modules/juce_audio_processors/utilities/juce_PluginHostType.h +++ b/modules/juce_audio_processors/utilities/juce_PluginHostType.h @@ -202,8 +202,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. */