1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Audio plugin fixes.

This commit is contained in:
jules 2012-10-01 20:21:27 +01:00
parent d1bdc123a9
commit 2cf131f0a6
4 changed files with 23 additions and 8 deletions

View file

@ -328,6 +328,7 @@ struct AAXClasses
setOpaque (true);
addAndMakeVisible (pluginEditor = plugin->createEditorIfNeeded());
setBounds (pluginEditor->getLocalBounds());
setBroughtToFrontOnMouseClick (true);
}
~ContentWrapperComponent()

View file

@ -392,7 +392,9 @@ public:
if (juceFilter->isMetaParameter (index))
outParameterInfo.flags |= kAudioUnitParameterFlag_IsGlobalMeta;
AUBase::FillInParameterName (outParameterInfo, name.toCFString(), false);
CFStringRef cfName (name.toCFString());
AUBase::FillInParameterName (outParameterInfo, cfName, false);
CFRelease (cfName);
outParameterInfo.minValue = 0.0f;
outParameterInfo.maxValue = 1.0f;
@ -868,17 +870,22 @@ protected:
if (outData != nullptr)
{
const int numPrograms = juceFilter->getNumPrograms();
presetsArray.ensureSize (sizeof (AUPreset) * numPrograms, true);
AUPreset* const presets = (AUPreset*) presetsArray.getData();
presetsArray.calloc (numPrograms);
CFMutableArrayRef presetsArrayRef = CFArrayCreateMutable (0, numPrograms, 0);
for (int i = 0; i < numPrograms; ++i)
{
presets[i].presetNumber = i;
presets[i].presetName = juceFilter->getProgramName(i).toCFString();
String name (juceFilter->getProgramName(i));
if (name.isEmpty())
name = "Untitled";
CFArrayAppendValue (presetsArrayRef, presets + i);
AUPreset& p = presetsArray[i];
p.presetNumber = i;
p.presetName = name.toCFString();
CFArrayAppendValue (presetsArrayRef, &p);
CFRelease (p.presetName);
}
*outData = (CFArrayRef) presetsArrayRef;
@ -927,7 +934,7 @@ private:
SMPTETime lastSMPTETime;
AUChannelInfo channelInfo [numChannelConfigs];
AudioUnitEvent auEvent;
mutable juce::MemoryBlock presetsArray;
mutable HeapBlock<AUPreset> presetsArray;
CriticalSection incomingMidiLock;
JUCE_DECLARE_NON_COPYABLE (JuceAU);

View file

@ -830,7 +830,7 @@ public:
void audioProcessorChanged (AudioProcessor*)
{
setInitialDelay (processor->getLatencySamples());
setInitialDelay (filter->getLatencySamples());
ioChanged();
updateDisplay();
}

View file

@ -227,4 +227,11 @@ bool operator!= (const ScopedPointer<ObjectType>& pointer1, ObjectType* const po
return static_cast <ObjectType*> (pointer1) != pointer2;
}
//==============================================================================
#ifndef DOXYGEN
// NB: This is just here to prevent any silly attempts to call deleteAndZero() on a ScopedPointer.
template <typename Type>
void deleteAndZero (ScopedPointer<Type>&) { static_jassert (sizeof (Type) == 12345); }
#endif
#endif // __JUCE_SCOPEDPOINTER_JUCEHEADER__