From dfc5fd54db511c76a4ee2765c783f7f95c5a7f45 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Fri, 27 Nov 2009 19:32:18 +0000 Subject: [PATCH] Fix for setting up RTAS parameters and mac messaging --- .../audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp | 12 ++++++++++++ juce_amalgamated.cpp | 5 ++--- src/native/mac/juce_mac_MessageManager.mm | 7 +++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp b/extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp index d8e1a4cb2a..254d84e727 100644 --- a/extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp +++ b/extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp @@ -259,6 +259,8 @@ public: deleteAndZero (wrapper); wrapper = new EditorCompWrapper (hostWindow, editorComp, this); + + process->touchAllParameters(); } else { @@ -786,6 +788,16 @@ protected: // xxx is there an RTAS equivalent? } + void touchAllParameters() + { + for (int i = 0; i < juceFilter->getNumParameters(); ++i) + { + audioProcessorParameterChangeGestureBegin (0, i); + audioProcessorParameterChanged (0, i, juceFilter->getParameter (i)); + audioProcessorParameterChangeGestureEnd (0, i); + } + } + //============================================================================== private: AudioProcessor* juceFilter; diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 6e47de18d4..d9ec967e9b 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -271445,16 +271445,15 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) jassert (isThisTheMessageThread()); // must only be called by the message thread uint32 endTime = Time::getMillisecondCounter() + millisecondsToRunFor; - NSDate* endDate = [NSDate dateWithTimeIntervalSinceNow: millisecondsToRunFor * 0.001 + 1.0]; while (! quitMessagePosted) { const ScopedAutoReleasePool pool; - CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.002, true); + CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true); NSEvent* e = [NSApp nextEventMatchingMask: NSAnyEventMask - untilDate: endDate + untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001] inMode: NSDefaultRunLoopMode dequeue: YES]; diff --git a/src/native/mac/juce_mac_MessageManager.mm b/src/native/mac/juce_mac_MessageManager.mm index a9a3ca9468..381bcd98b0 100644 --- a/src/native/mac/juce_mac_MessageManager.mm +++ b/src/native/mac/juce_mac_MessageManager.mm @@ -395,22 +395,21 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) jassert (isThisTheMessageThread()); // must only be called by the message thread uint32 endTime = Time::getMillisecondCounter() + millisecondsToRunFor; - NSDate* endDate = [NSDate dateWithTimeIntervalSinceNow: millisecondsToRunFor * 0.001 + 1.0]; while (! quitMessagePosted) { const ScopedAutoReleasePool pool; - CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.002, true); + CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true); NSEvent* e = [NSApp nextEventMatchingMask: NSAnyEventMask - untilDate: endDate + untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001] inMode: NSDefaultRunLoopMode dequeue: YES]; if (e != 0 && ! isEventBlockedByModalComps (e)) [NSApp sendEvent: e]; - + if (Time::getMillisecondCounter() >= endTime) break; }