diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-23 16:05:48 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-23 16:05:48 +0000 |
commit | 7269bab49c433f00665a34350de71f39a32bb2fb (patch) | |
tree | 046dd686f2d19415cc27452f9cd2cfecb92e5f69 /libs | |
parent | 95566ba56581709e55e38c99b8ba3e0ec6a43456 (diff) |
fix borked discovery of factory presets
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@6395 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/audio_unit.cc | 18 |
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 |