diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-01-17 17:53:19 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-01-17 17:53:19 +0000 |
commit | c1c14e229e0a5c82e2f9edf7e425589fe156b12d (patch) | |
tree | dd3813ba77ad77f40e9a775ad13813502bf406ab /libs/ardour/ardour/panner_manager.h | |
parent | 2a8629d11c362a992bb73724ad5f8b7e3f650018 (diff) |
some new headers
git-svn-id: svn://localhost/ardour2/branches/3.0@8522 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/panner_manager.h')
-rw-r--r-- | libs/ardour/ardour/panner_manager.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libs/ardour/ardour/panner_manager.h b/libs/ardour/ardour/panner_manager.h new file mode 100644 index 0000000000..d5b183c859 --- /dev/null +++ b/libs/ardour/ardour/panner_manager.h @@ -0,0 +1,45 @@ +#ifndef __ardour_panner_manager_h__ +#define __ardour_panner_manager_h__ + +#include <dlfcn.h> +#include "ardour/panner.h" +#include "ardour/session_handle.h" + +namespace ARDOUR { + +struct PannerInfo { + PanPluginDescriptor descriptor; + void* module; + + PannerInfo (PanPluginDescriptor& d, void* handle) + : descriptor (d) + , module (handle) + {} + + ~PannerInfo () { + dlclose (module); + } +}; + +class PannerManager : public ARDOUR::SessionHandlePtr +{ + public: + ~PannerManager (); + static PannerManager& instance (); + + void discover_panners (); + std::list<PannerInfo*> panner_info; + + PannerInfo* select_panner (ChanCount in, ChanCount out); + + private: + PannerManager(); + static PannerManager* _instance; + + PannerInfo* get_descriptor (std::string path); + int panner_discover (std::string path); +}; + +} // namespace + +#endif /* __ardour_panner_manager_h__ */ |