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/ardour | |
parent | cfc9a1f22ea38d4dd6c619d6cec25fe29b1c2f48 (diff) | |
parent | d9296b71237d9d3058b0796eda25258fadd45ad9 (diff) |
merge (with conflict fixes) with master (even against rgareus' recommendation)
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/panner_manager.h | 8 | ||||
-rw-r--r-- | libs/ardour/ardour/panner_shell.h | 19 | ||||
-rw-r--r-- | libs/ardour/ardour/rc_configuration_vars.h | 2 |
3 files changed, 25 insertions, 4 deletions
diff --git a/libs/ardour/ardour/panner_manager.h b/libs/ardour/ardour/panner_manager.h index 80f8e8010a..73d667424f 100644 --- a/libs/ardour/ardour/panner_manager.h +++ b/libs/ardour/ardour/panner_manager.h @@ -20,6 +20,8 @@ #ifndef __ardour_panner_manager_h__ #define __ardour_panner_manager_h__ +#include <map> +#include <string> #include <glibmm/module.h> #include "ardour/panner.h" @@ -27,7 +29,10 @@ namespace ARDOUR { +typedef std::map<std::string,std::string> PannerUriMap; + struct LIBARDOUR_API PannerInfo { + PanPluginDescriptor descriptor; Glib::Module* module; @@ -51,7 +56,8 @@ public: std::list<PannerInfo*> panner_info; PannerInfo* select_panner (ChanCount in, ChanCount out, std::string const uri = ""); - PannerInfo* get_by_uri (std::string 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(); diff --git a/libs/ardour/ardour/panner_shell.h b/libs/ardour/ardour/panner_shell.h index 76df20489f..02f80c7b28 100644 --- a/libs/ardour/ardour/panner_shell.h +++ b/libs/ardour/ardour/panner_shell.h @@ -50,7 +50,7 @@ class Pannable; 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); @@ -64,25 +64,38 @@ public: XMLNode& get_state (); int set_state (const XMLNode&, int version); + PBD::Signal0<void> PannableChanged; /* Pannable changed -- l*/ PBD::Signal0<void> Changed; /* panner and/or outputs count and/or bypass state changed */ boost::shared_ptr<Panner> panner() const { return _panner; } - boost::shared_ptr<Pannable> pannable() const { return _pannable; } + boost::shared_ptr<Pannable> pannable() const { return _panlinked ? _pannable_route : _pannable_internal; } bool bypassed () const; void set_bypassed (bool); + bool is_send () const { return (_is_send); } + bool is_linked_to_route () const { return (_is_send && _panlinked); } + /* this function takes the process lock: */ + void set_linked_to_route (bool); + std::string current_panner_uri() const { return _current_panner_uri; } std::string user_selected_panner_uri() const { return _user_selected_panner_uri; } std::string panner_gui_uri() const { return _panner_gui_uri; } + /* this function takes the process lock: */ + bool select_panner_by_uri (std::string const uri); + private: friend class Route; void distribute_no_automation (BufferSet& src, BufferSet& dest, pframes_t nframes, gain_t gain_coeff); bool set_user_selected_panner_uri (std::string const uri); boost::shared_ptr<Panner> _panner; - boost::shared_ptr<Pannable> _pannable; + + boost::shared_ptr<Pannable> _pannable_internal; + boost::shared_ptr<Pannable> _pannable_route; + bool _is_send; + bool _panlinked; bool _bypassed; std::string _current_panner_uri; diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h index 23973f6a1a..adae854ca7 100644 --- a/libs/ardour/ardour/rc_configuration_vars.h +++ b/libs/ardour/ardour/rc_configuration_vars.h @@ -113,6 +113,8 @@ CONFIG_VARIABLE (gain_t, solo_mute_gain, "solo-mute-gain", 0.0) CONFIG_VARIABLE (std::string, monitor_bus_preferred_bundle, "monitor-bus-preferred-bundle", "") CONFIG_VARIABLE (bool, quieten_at_speed, "quieten-at-speed", true) +CONFIG_VARIABLE (bool, link_send_and_route_panner, "link-send-and-route-panner", true) + /* click */ CONFIG_VARIABLE (bool, clicking, "clicking", false) |