Browse Source

AU plugin builds

pull/116/head
falkTX 7 years ago
parent
commit
d97f0ae1b6
4 changed files with 85 additions and 11 deletions
  1. +49
    -0
      Makefile.plugins.mk
  2. +4
    -4
      distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h
  3. +28
    -7
      distrho/src/DistrhoPluginAU.cpp
  4. +4
    -0
      examples/Parameters/Makefile

+ 49
- 0
Makefile.plugins.mk View File

@@ -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

# ---------------------------------------------------------------------------------------------------------------------

+ 4
- 4
distrho/src/CoreAudio106/AudioUnits/AUPublic/AUBase/ComponentBase.h View File

@@ -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


+ 28
- 7
distrho/src/DistrhoPluginAU.cpp View File

@@ -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"

// -----------------------------------------------------------------------

+ 4
- 0
examples/Parameters/Makefile View File

@@ -49,6 +49,10 @@ endif

TARGETS += vst

ifeq ($(MACOS),true)
TARGETS += au
endif

all: $(TARGETS)

# --------------------------------------------------------------

Loading…
Cancel
Save