diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-01-14 10:56:17 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-01-14 10:56:17 -0500 |
commit | cf806123ca5faaef483f898daba3f7bd38ec62eb (patch) | |
tree | f11f2f9ff64ea3b3682c81b8dd893ba0e9476445 /libs/ardour/panner_manager.cc | |
parent | cfc9a1f22ea38d4dd6c619d6cec25fe29b1c2f48 (diff) | |
parent | d9296b71237d9d3058b0796eda25258fadd45ad9 (diff) |
merge (with conflict fixes) with master (even against rgareus' recommendation)
Diffstat (limited to 'libs/ardour/panner_manager.cc')
-rw-r--r-- | libs/ardour/panner_manager.cc | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/libs/ardour/panner_manager.cc b/libs/ardour/panner_manager.cc index 3c9623f3e6..0084a62285 100644 --- a/libs/ardour/panner_manager.cc +++ b/libs/ardour/panner_manager.cc @@ -222,13 +222,35 @@ PannerManager::select_panner (ChanCount in, ChanCount out, std::string const uri } PannerInfo* -PannerManager::get_by_uri (std::string uri) +PannerManager::get_by_uri (std::string uri) const { PannerInfo* pi = NULL; - for (list<PannerInfo*>::iterator p = panner_info.begin(); p != panner_info.end(); ++p) { + for (list<PannerInfo*>::const_iterator p = panner_info.begin(); p != panner_info.end(); ++p) { if ((*p)->descriptor.panner_uri != uri) continue; pi = (*p); break; } return pi; } + +PannerUriMap +PannerManager::get_available_panners(uint32_t const a_in, uint32_t const a_out) const +{ + int const in = a_in; + int const out = a_out; + PannerUriMap panner_list; + + if (out < 2 || in == 0) { + return panner_list; + } + + /* get available panners for current configuration. */ + for (list<PannerInfo*>::const_iterator p = panner_info.begin(); p != panner_info.end(); ++p) { + PanPluginDescriptor* d = &(*p)->descriptor; + if (d->in != -1 && d->in != in) continue; + if (d->out != -1 && d->out != out) continue; + if (d->in == -1 && d->out == -1 && out <= 2) continue; + panner_list.insert(std::pair<std::string,std::string>(d->panner_uri,d->name)); + } + return panner_list; +} |