summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-23 16:05:48 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-23 16:05:48 +0000
commit7269bab49c433f00665a34350de71f39a32bb2fb (patch)
tree046dd686f2d19415cc27452f9cd2cfecb92e5f69
parent95566ba56581709e55e38c99b8ba3e0ec6a43456 (diff)
fix borked discovery of factory presets
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@6395 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/audio_unit.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc
index e155a2b081..42c18fd5f3 100644
--- a/libs/ardour/audio_unit.cc
+++ b/libs/ardour/audio_unit.cc
@@ -388,19 +388,15 @@ void
AUPlugin::discover_factory_presets ()
{
CFArrayRef presets;
- UInt32 dataSize = 0;
- OSStatus err = unit->GetPropertyInfo (kAudioUnitProperty_FactoryPresets,
- kAudioUnitScope_Global, 0,
- &dataSize, NULL);
- if (err || !dataSize) {
- /* no presets? */
+ UInt32 dataSize = sizeof (presets);
+ OSStatus err;
+
+ if ((err = unit->GetProperty (kAudioUnitProperty_FactoryPresets, kAudioUnitScope_Global, 0, (void*) &presets, &dataSize)) != 0) {
+ cerr << "cannot get factory preset info: " << err << endl;
return;
}
- dataSize = sizeof (presets);
-
- if ((err = unit->GetProperty (kAudioUnitProperty_FactoryPresets, kAudioUnitScope_Global, 0, (void*) &presets, &dataSize)) != 0) {
- cerr << "cannot get factory preset info: " << err << endl;
+ if (!presets) {
return;
}
@@ -412,6 +408,8 @@ AUPlugin::discover_factory_presets ()
string name = CFStringRefToStdString (preset->presetName);
factory_preset_map[name] = preset->presetNumber;
}
+
+ CFRelease (presets);
}
void