diff options
author | Taybin Rutkin <taybin@taybin.com> | 2006-08-02 20:17:00 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2006-08-02 20:17:00 +0000 |
commit | 58b71b15d85fc23eb377bb629ba31811c20d0c32 (patch) | |
tree | fb073b136be5f208aa2e1f8de5b6284cdb992770 /libs/ardour/audio_unit.cc | |
parent | c3a00bf1e9662751f65b0dc22b27bc1a6ddcc1cd (diff) |
Added libappleutility from /Developer/Examples/CoreAudio/PublicUtility
More PluginManager refactoring
Rearranged AUPluginInfo for better maintainability
git-svn-id: svn://localhost/ardour2/trunk@748 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_unit.cc')
-rw-r--r-- | libs/ardour/audio_unit.cc | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 52cfc187af..4cc97a510e 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -39,8 +39,6 @@ AUPluginInfo::discover () desc.componentSubType = 0; desc.componentManufacturer = 0; - vector<ComponentDescription> vCompDescs; - for (int i = 0; i < numTypes; ++i) { if (i == 1) { desc.componentType = kAudioUnitType_MusicEffect; @@ -54,17 +52,30 @@ AUPluginInfo::discover () while (comp != NULL) { ComponentDescription temp; GetComponentInfo (comp, &temp, NULL, NULL, NULL); - vCompDescs.push_back(temp); + + AUPluginInfoPtr plug(new AUPluginInfo); + plug->name = AUPluginInfo::get_name (temp); + plug->type = PluginInfo::AudioUnit; + plug->n_inputs = 0; + plug->n_outputs = 0; + plug->category = "AudioUnit"; + plug->desc = CompDescPtr(new ComponentDescription(temp)); + + plugs.push_back(plug); + comp = FindNextComponent (comp, &desc); } } - for (unsigned int i = 0; i < vCompDescs.size(); ++i) { + return plugs; +} - // the following large block is just for determining the name of the plugin. +std::string +AUPluginInfo::get_name (ComponentDescription& comp_desc) +{ CFStringRef itemName = NULL; // Marc Poirier -style item name - Component auComponent = FindNextComponent (0, &(vCompDescs[i])); + Component auComponent = FindNextComponent (0, &comp_desc); if (auComponent != NULL) { ComponentDescription dummydesc; Handle nameHandle = NewHandle(sizeof(void*)); @@ -82,9 +93,9 @@ AUPluginInfo::discover () // if Marc-style fails, do the original way if (itemName == NULL) { - CFStringRef compTypeString = UTCreateStringForOSType(vCompDescs[i].componentType); - CFStringRef compSubTypeString = UTCreateStringForOSType(vCompDescs[i].componentSubType); - CFStringRef compManufacturerString = UTCreateStringForOSType(vCompDescs[i].componentManufacturer); + CFStringRef compTypeString = UTCreateStringForOSType(comp_desc.componentType); + CFStringRef compSubTypeString = UTCreateStringForOSType(comp_desc.componentSubType); + CFStringRef compManufacturerString = UTCreateStringForOSType(comp_desc.componentManufacturer); itemName = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("%@ - %@ - %@"), compTypeString, compManufacturerString, compSubTypeString); @@ -96,17 +107,6 @@ AUPluginInfo::discover () if (compManufacturerString != NULL) CFRelease(compManufacturerString); } - string realname = CFStringRefToStdString(itemName); - - AUPluginInfoPtr plug(new AUPluginInfo); - plug->name = realname; - plug->type = PluginInfo::AudioUnit; - plug->n_inputs = 0; - plug->n_outputs = 0; - plug->category = "AudioUnit"; - - plugs.push_back(plug); - } - - return plugs; + + return CFStringRefToStdString(itemName); } |