diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-03-19 22:52:29 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-03-19 22:52:29 +0000 |
commit | ead58e22ffb356e24a729a4a826a1b7fbf0558b6 (patch) | |
tree | a8a26cea54d8a17a2e018cc1e1293ca99f800e6e /libs | |
parent | 64e9d70b1ab59e25a5cddc390082b0124f13afa8 (diff) |
clean up & extend handling of various AU Component types & subtypes - makes AU NetSend/Receive work
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4875 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/audio_unit.h | 1 | ||||
-rw-r--r-- | libs/ardour/audio_unit.cc | 78 |
2 files changed, 59 insertions, 20 deletions
diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index b100ae05ab..50c7c5fcbc 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -177,6 +177,7 @@ class AUPluginInfo : public PluginInfo { static void discover_music (PluginInfoList&); static void discover_fx (PluginInfoList&); + static void discover_generators (PluginInfoList&); static void discover_by_description (PluginInfoList&, CAComponentDescription&); static Glib::ustring au_cache_path (); diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index df6e13edf4..cb53db6a88 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -1454,6 +1454,7 @@ AUPluginInfo::discover () discover_fx (plugs); discover_music (plugs); + discover_generators (plugs); return plugs; } @@ -1485,6 +1486,19 @@ AUPluginInfo::discover_fx (PluginInfoList& plugs) } void +AUPluginInfo::discover_generators (PluginInfoList& plugs) +{ + CAComponentDescription desc; + desc.componentFlags = 0; + desc.componentFlagsMask = 0; + desc.componentSubType = 0; + desc.componentManufacturer = 0; + desc.componentType = kAudioUnitType_Generator; + + discover_by_description (plugs, desc); +} + +void AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescription& desc) { Component comp = 0; @@ -1501,11 +1515,21 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip /* no panners, format converters or i/o AU's for our purposes */ + AUPluginInfo::get_names (temp, info->name, info->creator); + cerr << "Discovered effect " << info->name << " by " << info->creator << " type = " << info->descriptor->Type() << " sub = " << info->descriptor->SubType() << endl; + switch (info->descriptor->Type()) { case kAudioUnitType_Panner: case kAudioUnitType_OfflineEffect: case kAudioUnitType_FormatConverter: continue; + case kAudioUnitType_Output: + case kAudioUnitType_MusicDevice: + case kAudioUnitType_MusicEffect: + case kAudioUnitType_Effect: + case kAudioUnitType_Mixer: + case kAudioUnitType_Generator: + break; default: break; } @@ -1515,15 +1539,12 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip case kAudioUnitSubType_SystemOutput: case kAudioUnitSubType_GenericOutput: case kAudioUnitSubType_AUConverter: + /* we don't want output units here */ continue; break; case kAudioUnitSubType_DLSSynth: - info->category = "DLSSynth"; - break; - - case kAudioUnitType_MusicEffect: - info->category = "MusicEffect"; + info->category = "DLS Synth"; break; case kAudioUnitSubType_Varispeed: @@ -1535,55 +1556,59 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip break; case kAudioUnitSubType_LowPassFilter: - info->category = "LowPassFilter"; + info->category = "Low-pass Filter"; break; case kAudioUnitSubType_HighPassFilter: - info->category = "HighPassFilter"; + info->category = "High-pass Filter"; break; case kAudioUnitSubType_BandPassFilter: - info->category = "BandPassFilter"; + info->category = "Band-pass Filter"; break; case kAudioUnitSubType_HighShelfFilter: - info->category = "HighShelfFilter"; + info->category = "High-shelf Filter"; break; case kAudioUnitSubType_LowShelfFilter: - info->category = "LowShelfFilter"; + info->category = "Low-shelf Filter"; break; case kAudioUnitSubType_ParametricEQ: - info->category = "ParametricEQ"; + info->category = "Parametric EQ"; break; case kAudioUnitSubType_GraphicEQ: - info->category = "GraphicEQ"; + info->category = "Graphic EQ"; break; case kAudioUnitSubType_PeakLimiter: - info->category = "PeakLimiter"; + info->category = "Peak Limiter"; break; case kAudioUnitSubType_DynamicsProcessor: - info->category = "DynamicsProcessor"; + info->category = "Dynamics Processor"; break; case kAudioUnitSubType_MultiBandCompressor: - info->category = "MultiBandCompressor"; + info->category = "Multiband Compressor"; break; case kAudioUnitSubType_MatrixReverb: - info->category = "MatrixReverb"; + info->category = "Matrix Reverb"; break; - case kAudioUnitType_Mixer: - info->category = "Mixer"; + case kAudioUnitSubType_SampleDelay: + info->category = "Sample Delay"; + break; + + case kAudioUnitSubType_Pitch: + info->category = "Pitch"; break; - case kAudioUnitSubType_StereoMixer: - info->category = "StereoMixer"; + case kAudioUnitSubType_NetSend: + info->category = "Net Sender"; break; case kAudioUnitSubType_3DMixer: @@ -1594,6 +1619,19 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip info->category = "MatrixMixer"; break; + case kAudioUnitSubType_ScheduledSoundPlayer: + info->category = "Scheduled Sound Player"; + break; + + + case kAudioUnitSubType_AudioFilePlayer: + info->category = "Audio File Player"; + break; + + case kAudioUnitSubType_NetReceive: + info->category = "Net Receiver"; + break; + default: info->category = ""; } |