| @@ -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)" | |||
| @@ -229,6 +262,20 @@ endif | |||
| @echo "Creating VST plugin for $(NAME)" | |||
| @$(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) | |||
| @@ -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 | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| @@ -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 | |||
| @@ -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" | |||
| // ----------------------------------------------------------------------- | |||
| @@ -49,6 +49,10 @@ endif | |||
| TARGETS += vst | |||
| ifeq ($(MACOS),true) | |||
| TARGETS += au | |||
| endif | |||
| all: $(TARGETS) | |||
| # -------------------------------------------------------------- | |||