diff options
author | falkTX <falktx@gmail.com> | 2019-01-24 11:36:00 +0000 |
---|---|---|
committer | falkTX <falktx@gmail.com> | 2019-01-24 11:36:00 +0000 |
commit | d97f0ae1b6f4d07bc6957338b4f8b86e894d50cd (patch) | |
tree | e6acbc11d65d16066f926651e39c5c603973f8d9 | |
parent | f992b82b73351a7d5b4bec47344b34533704afee (diff) |
AU plugin builds
-rw-r--r-- | Makefile.plugins.mk | 49 | ||||
-rwxr-xr-x | distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h | 8 | ||||
-rw-r--r-- | distrho/src/DistrhoPluginAU.cpp | 35 | ||||
-rw-r--r-- | examples/Parameters/Makefile | 4 |
4 files changed, 85 insertions, 11 deletions
diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk index 4afe6b40..3ab599c1 100644 --- a/Makefile.plugins.mk +++ b/Makefile.plugins.mk @@ -57,6 +57,34 @@ lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT) lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) +au = $(TARGET_DIR)/$(NAME).component/Contents/MacOS/plugin + +# --------------------------------------------------------------------------------------------------------------------- +# Set stuff needed for AU + +AU_BUILD_FLAGS = \ + -I$(DPF_PATH)/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase \ + -I$(DPF_PATH)/distrho/src/CoreAudio106/AudioUnits/AUPublic/Utility \ + -I$(DPF_PATH)/distrho/src/CoreAudio106/PublicUtility\ + -Wno-deprecated-declarations \ + -Wno-four-char-constants \ + -Wno-overloaded-virtual \ + -Wno-unused-parameter + +AU_LINK_FLAGS = \ + -bundle \ + -framework AudioToolbox \ + -framework AudioUnit \ + -Wl,-exported_symbol,_PluginAUEntry + +# not needed yet +# -I$(DPF_PATH)/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUCarbonViewBase +# -I$(DPF_PATH)/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUInstrumentBase +# -I$(DPF_PATH)/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUViewBase +# -I$(DPF_PATH)/distrho/src/CoreAudio106/AudioUnits/AUPublic/OtherBases + +# -framework CoreAudio +# -framework CoreServices # --------------------------------------------------------------------------------------------------------------------- # Handle UI stuff, disable UI support automatically @@ -147,6 +175,11 @@ $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain @echo "Compiling DistrhoPluginMain.cpp (JACK)" @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell $(PKG_CONFIG) --cflags jack) -DDISTRHO_PLUGIN_TARGET_JACK -c -o $@ +$(BUILD_DIR)/DistrhoPluginMain_AU.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoPluginMain.cpp (AU)" + $(CXX) $< $(BUILD_CXX_FLAGS) $(AU_BUILD_FLAGS) -DDISTRHO_PLUGIN_TARGET_AU -c -o $@ + $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp -@mkdir -p $(BUILD_DIR) @echo "Compiling DistrhoUIMain.cpp (DSSI)" @@ -230,6 +263,20 @@ endif @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@ # --------------------------------------------------------------------------------------------------------------------- +# AU + +au: $(au) + +ifeq ($(HAVE_DGL),true) +$(au): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_AU.cpp.o $(BUILD_DIR)/DistrhoUIMain_AU.cpp.o $(DGL_LIB) +else +$(au): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_AU.cpp.o +endif + -@mkdir -p $(shell dirname $@) + @echo "Creating AU plugin for $(NAME)" + $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(AU_LINK_FLAGS) $(DGL_LIBS) -o $@ + +# --------------------------------------------------------------------------------------------------------------------- -include $(OBJS_DSP:%.o=%.d) ifeq ($(HAVE_DGL),true) @@ -241,10 +288,12 @@ endif -include $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.d +-include $(BUILD_DIR)/DistrhoPluginMain_AU.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_VST.cpp.d +-include $(BUILD_DIR)/DistrhoUIMain_AU.cpp.d # --------------------------------------------------------------------------------------------------------------------- diff --git a/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h b/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h index f60bd3f6..410192d8 100755 --- a/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h +++ b/distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h @@ -154,8 +154,8 @@ public: #if TARGET_OS_MAC && TARGET_CPU_PPC && !TARGET_RT_MAC_MACHO // for OS 9, a PPC native component's entry point must be a routine descriptor #define COMPONENT_ENTRY(Class) \ - extern "C" OSStatus Class##Entry(ComponentParameters *params, Class *obj); \ - extern "C" OSStatus Class##Entry(ComponentParameters *params, Class *obj) { \ + extern "C" __attribute__ ((visibility("default"))) OSStatus Class##Entry(ComponentParameters *params, Class *obj); \ + extern "C" __attribute__ ((visibility("default"))) OSStatus Class##Entry(ComponentParameters *params, Class *obj) { \ return ComponentEntryPoint<Class>::Dispatch(params, obj); \ } \ \ @@ -165,8 +165,8 @@ public: STACK_ROUTINE_PARAMETER (2, kFourByteCode)), Class##Entry); #else #define COMPONENT_ENTRY(Class) \ - extern "C" OSStatus Class##Entry(ComponentParameters *params, Class *obj); \ - extern "C" OSStatus Class##Entry(ComponentParameters *params, Class *obj) { \ + extern "C" __attribute__ ((visibility("default"))) OSStatus Class##Entry(ComponentParameters *params, Class *obj); \ + extern "C" __attribute__ ((visibility("default"))) OSStatus Class##Entry(ComponentParameters *params, Class *obj) { \ return ComponentEntryPoint<Class>::Dispatch(params, obj); \ } #endif diff --git a/distrho/src/DistrhoPluginAU.cpp b/distrho/src/DistrhoPluginAU.cpp index a3036844..4050f3ac 100644 --- a/distrho/src/DistrhoPluginAU.cpp +++ b/distrho/src/DistrhoPluginAU.cpp @@ -56,7 +56,7 @@ public: AUKernelBase* NewKernel() override { - return new dpfplugKernel(this); + return new PluginKernel(this, fPlugin); } OSStatus GetParameterValueStrings(AudioUnitScope inScope, @@ -75,9 +75,10 @@ public: // Name { - const String& name = fPlugin.getParameterUnit(inParameterID); + // FIXME + // const String& name = fPlugin.getParameterUnit(inParameterID); - AUBase::FillInParameterName(outParameterInfo, name.buffer(), true); + // AUBase::FillInParameterName(outParameterInfo, name.buffer(), true); } // Hints @@ -132,8 +133,9 @@ public: } else { - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = unit.buffer(); + // FIXME + // outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + // outParameterInfo.unitName = unit.buffer(); } } @@ -190,7 +192,8 @@ private: { DISTRHO_SAFE_ASSERT_RETURN(inNumChannels == DISTRHO_PLUGIN_NUM_INPUTS,); - fPlugin.run(inSourceP, inDestP, inFramesToProcess); + // FIXME + // fPlugin.run(inSourceP, inDestP, inFramesToProcess); } void Reset() override @@ -210,6 +213,24 @@ END_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- -COMPONENT_ENTRY(DISTRHO_NAMESPACE::PluginAU) +using DISTRHO_NAMESPACE::PluginAU; +COMPONENT_ENTRY(PluginAU) + +// ----------------------------------------------------------------------- + +#include "CoreAudio106/AudioUnits/AUPublic/AUBase/AUBase.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/AUBase/AUDispatch.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/AUBase/AUInputElement.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp" +#include "CoreAudio106/AudioUnits/AUPublic/Utility/AUBuffer.cpp" +#include "CoreAudio106/PublicUtility/CAAudioChannelLayout.cpp" +#include "CoreAudio106/PublicUtility/CAAUParameter.cpp" +#include "CoreAudio106/PublicUtility/CAMutex.cpp" +#include "CoreAudio106/PublicUtility/CAStreamBasicDescription.cpp" +#include "CoreAudio106/PublicUtility/CAVectorUnit.cpp" // ----------------------------------------------------------------------- diff --git a/examples/Parameters/Makefile b/examples/Parameters/Makefile index f097b403..92fddd17 100644 --- a/examples/Parameters/Makefile +++ b/examples/Parameters/Makefile @@ -49,6 +49,10 @@ endif TARGETS += vst +ifeq ($(MACOS),true) +TARGETS += au +endif + all: $(TARGETS) # -------------------------------------------------------------- |