X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fpanner_manager.h;h=2103fc2beaba1b73c1d3505bb87f30f352aece20;hb=11a68f7dd38e72c3e497569a60cb0740a33b78cf;hp=e47ed36ec38225b80313e258ca84f5fd28e41d62;hpb=36c233fe6ce570ce85224626ce7aba4a2607537f;p=ardour.git diff --git a/libs/ardour/ardour/panner_manager.h b/libs/ardour/ardour/panner_manager.h index e47ed36ec3..2103fc2bea 100644 --- a/libs/ardour/ardour/panner_manager.h +++ b/libs/ardour/ardour/panner_manager.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Paul Davis + Copyright (C) 2012 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,23 +20,29 @@ #ifndef __ardour_panner_manager_h__ #define __ardour_panner_manager_h__ -#include +#include +#include +#include + #include "ardour/panner.h" #include "ardour/session_handle.h" namespace ARDOUR { +typedef std::map PannerUriMap; + struct LIBARDOUR_API PannerInfo { + PanPluginDescriptor descriptor; - void* module; + Glib::Module* module; - PannerInfo (PanPluginDescriptor& d, void* handle) + PannerInfo (PanPluginDescriptor& d, Glib::Module* m) : descriptor (d) - , module (handle) + , module (m) {} ~PannerInfo () { - dlclose (module); + delete module; } }; @@ -49,7 +55,9 @@ public: void discover_panners (); std::list panner_info; - PannerInfo* select_panner (ChanCount in, ChanCount out); + PannerInfo* select_panner (ChanCount in, ChanCount out, std::string const uri = ""); + PannerInfo* get_by_uri (std::string uri) const; + PannerUriMap get_available_panners(uint32_t const a_in, uint32_t const a_out) const; private: PannerManager();