#include "ardour/audioengine.h"
#include "ardour/internal_return.h"
#include "ardour/internal_send.h"
+ #include "ardour/panner_shell.h"
#include "ardour/plugin_insert.h"
+#include "ardour/pannable.h"
#include "ardour/port_insert.h"
#include "ardour/profile.h"
#include "ardour/return.h"
} else if (type->value() == "send") {
+ boost::shared_ptr<Pannable> sendpan(new Pannable (*_session));
XMLNode n (**niter);
- Send* s = new Send (*_session, sendpan, _route->mute_master());
++
+ Send* s = new Send (*_session, _route->pannable(), _route->mute_master());
IOProcessor::prepare_for_reset (n, s->name());
#ifndef __ardour_panner_manager_h__
#define __ardour_panner_manager_h__
-#include <dlfcn.h>
++#include <map>
++#include <string>
+#include <glibmm/module.h>
+
#include "ardour/panner.h"
#include "ardour/session_handle.h"
namespace ARDOUR {
-struct PannerInfo {
+ typedef std::map<std::string,std::string> 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 () {
/** Class to manage panning by instantiating and controlling
* an appropriate Panner object for a given in/out configuration.
*/
-class PannerShell : public SessionObject
+class LIBARDOUR_API PannerShell : public SessionObject
{
public:
- PannerShell (std::string name, Session&, boost::shared_ptr<Pannable>);
+ PannerShell (std::string name, Session&, boost::shared_ptr<Pannable>, bool is_send = false);
virtual ~PannerShell ();
std::string describe_parameter (Evoral::Parameter param);
} else if (prop->value() == "send") {
-- boost::shared_ptr<Pannable> sendpan (new Pannable (_session));
- processor.reset (new Send (_session, sendpan, _mute_master));
+ processor.reset (new Send (_session, _pannable, _mute_master));
} else {
error << string_compose(_("unknown Processor type \"%1\"; ignored"), prop->value()) << endmsg;