@@ -693,9 +693,9 @@ $(au): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_AU.cpp.o | |||
endif | |||
-@mkdir -p $(shell dirname $@) | |||
@echo "Creating AU component for $(NAME)" | |||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(EXTRA_LIBS) $(EXTRA_DSP_LIBS) $(EXTRA_UI_LIBS) $(DGL_LIBS) -framework AudioToolbox $(SHARED) $(SYMBOLS_AU) -o $@ | |||
$(SILENT)$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(EXTRA_LIBS) $(EXTRA_DSP_LIBS) $(EXTRA_UI_LIBS) $(DGL_LIBS) -framework AudioToolbox -framework CoreFoundation $(SHARED) $(SYMBOLS_AU) -o $@ | |||
# -framework AudioUnit -framework Foundation | |||
# -framework AudioUnit | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Export | |||
@@ -561,8 +561,13 @@ function(dpf__build_au NAME HAS_UI) | |||
dpf__add_ui_main("${NAME}-au" "au" "${HAS_UI}") | |||
dpf__set_module_export_list("${NAME}-au" "au") | |||
find_library(APPLE_AUDIOTOOLBOX_FRAMEWORK "AudioToolbox") | |||
find_library(APPLE_COREFOUNDATION_FRAMEWORK "CoreFoundation") | |||
target_compile_options("${NAME}-au" PRIVATE "-ObjC++") | |||
target_link_libraries("${NAME}-au" PRIVATE "${NAME}-dsp" "${NAME}-ui" "${APPLE_AUDIOTOOLBOX_FRAMEWORK}") | |||
target_link_libraries("${NAME}-au" PRIVATE | |||
"${NAME}-dsp" | |||
"${NAME}-ui" | |||
"${APPLE_AUDIOTOOLBOX_FRAMEWORK}" | |||
"${APPLE_COREFOUNDATION_FRAMEWORK}") | |||
set_target_properties("${NAME}-au" PROPERTIES | |||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.component/Contents/MacOS/$<0:>" | |||
ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/au/$<0:>" | |||
@@ -22,7 +22,7 @@ | |||
#include "DistrhoPluginInternal.hpp" | |||
#include "../DistrhoPluginUtils.hpp" | |||
#if DISTRHO_PLUGIN_HAS_UI | |||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||
# include "../extra/RingBuffer.hpp" | |||
#endif | |||
@@ -239,6 +239,9 @@ static constexpr const requestParameterValueChangeFunc requestParameterValueChan | |||
#if ! DISTRHO_PLUGIN_WANT_STATE | |||
static constexpr const updateStateValueFunc updateStateValueCallback = nullptr; | |||
#endif | |||
#if DISTRHO_PLUGIN_WANT_TIMEPOS | |||
static constexpr const double kDefaultTicksPerBeat = 1920.0; | |||
#endif | |||
typedef std::map<const String, String> StringMap; | |||
@@ -352,9 +355,7 @@ public: | |||
#if DISTRHO_PLUGIN_WANT_TIMEPOS | |||
std::memset(&fHostCallbackInfo, 0, sizeof(fHostCallbackInfo)); | |||
// ticksPerBeat is not possible with AU | |||
fTimePosition.bbt.ticksPerBeat = 1920.0; | |||
fTimePosition.bbt.ticksPerBeat = kDefaultTicksPerBeat; | |||
#endif | |||
} | |||
@@ -384,6 +385,7 @@ public: | |||
#endif | |||
#if DISTRHO_PLUGIN_WANT_TIMEPOS | |||
fTimePosition.clear(); | |||
fTimePosition.bbt.ticksPerBeat = kDefaultTicksPerBeat; | |||
#endif | |||
return noErr; | |||
} | |||
@@ -1578,6 +1580,7 @@ public: | |||
#endif | |||
#if DISTRHO_PLUGIN_WANT_TIMEPOS | |||
fTimePosition.clear(); | |||
fTimePosition.bbt.ticksPerBeat = kDefaultTicksPerBeat; | |||
#endif | |||
return noErr; | |||
} | |||
@@ -1936,12 +1939,13 @@ private: | |||
Float32 f1 = 4.f; // initial value for beats per bar | |||
Float64 g1 = 0.0; | |||
Float64 g2 = 0.0; | |||
UInt32 u1 = 0.0; | |||
UInt32 u1 = 0; | |||
if (fHostCallbackInfo.musicalTimeLocationProc != nullptr | |||
&& fHostCallbackInfo.musicalTimeLocationProc(fHostCallbackInfo.hostUserData, | |||
nullptr, &f1, &u1, nullptr) == noErr) | |||
{ | |||
f1 /= u1; | |||
fTimePosition.bbt.beatsPerBar = f1; | |||
fTimePosition.bbt.beatType = u1; | |||
} | |||
@@ -1984,7 +1988,7 @@ private: | |||
fTimePosition.frame = 0; | |||
} | |||
fTimePosition.bbt.barStartTick = fTimePosition.bbt.ticksPerBeat * | |||
fTimePosition.bbt.barStartTick = kDefaultTicksPerBeat * | |||
fTimePosition.bbt.beatsPerBar * | |||
(fTimePosition.bbt.bar - 1); | |||
@@ -155,20 +155,12 @@ public: | |||
void postSetup() | |||
{ | |||
if (fUI.isResizable()) | |||
{ | |||
// [view setAutoresizingMask:NSViewNotSizable]; | |||
[fParentView setAutoresizesSubviews:YES]; | |||
} | |||
else | |||
{ | |||
[fParentView setAutoresizingMask:NSViewNotSizable]; | |||
[fParentView setAutoresizesSubviews:NO]; | |||
} | |||
// NSView* const uiView = reinterpret_cast<NSView*>(fUI.getNativeWindowHandle()); | |||
const NSSize size = NSMakeSize(fUI.getWidth(), fUI.getHeight()); | |||
NSView* const uiView = reinterpret_cast<NSView*>(fUI.getNativeWindowHandle()); | |||
[fParentView setFrameSize:NSMakeSize(fUI.getWidth(), fUI.getHeight())]; | |||
[fParentView setAutoresizesSubviews:fUI.isResizable()]; | |||
[fParentView setFrameSize:size]; | |||
[uiView setFrameSize:size]; | |||
} | |||
private: | |||
@@ -41,9 +41,7 @@ public: | |||
fColorValue(0), | |||
// init meter values to 0 | |||
fOutLeft(0.0f), | |||
fOutRight(0.0f), | |||
// FIXME | |||
fNeedsRepaint(false) | |||
fOutRight(0.0f) | |||
{ | |||
setGeometryConstraints(32, 128, false); | |||
} | |||
@@ -73,9 +71,7 @@ protected: | |||
if (fOutLeft != value) | |||
{ | |||
fOutLeft = value; | |||
// FIXME | |||
// repaint(); | |||
fNeedsRepaint = true; | |||
repaint(); | |||
} | |||
break; | |||
@@ -88,9 +84,7 @@ protected: | |||
if (fOutRight != value) | |||
{ | |||
fOutRight = value; | |||
// FIXME | |||
// repaint(); | |||
fNeedsRepaint = true; | |||
repaint(); | |||
} | |||
break; | |||
} | |||
@@ -204,15 +198,6 @@ protected: | |||
return true; | |||
} | |||
void uiIdle() override | |||
{ | |||
if (fNeedsRepaint) | |||
{ | |||
fNeedsRepaint = false; | |||
repaint(); | |||
} | |||
} | |||
// ------------------------------------------------------------------------------------------------------- | |||
private: | |||
@@ -228,9 +213,6 @@ private: | |||
*/ | |||
float fOutLeft, fOutRight; | |||
// FIXME this shouldnt be needed! | |||
bool fNeedsRepaint; | |||
/** | |||
Update color if needed. | |||
*/ | |||
@@ -251,9 +233,7 @@ private: | |||
break; | |||
} | |||
// FIXME | |||
// repaint(); | |||
fNeedsRepaint = true; | |||
repaint(); | |||
} | |||
/** | |||