summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-01-13 23:21:30 +0100
committerRobin Gareus <robin@gareus.org>2014-01-13 23:21:30 +0100
commite45151b89c64912077c03fc979f1581780ac9e27 (patch)
tree0fa6c5fbcb350dd40fadb36f97b472ae25bd0e73 /libs/ardour/ardour
parent5b0c90299785d46357a70cc7625c9b3ee87486f1 (diff)
first stab at send+route panner link
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/panner_shell.h18
-rw-r--r--libs/ardour/ardour/rc_configuration_vars.h2
2 files changed, 16 insertions, 4 deletions
diff --git a/libs/ardour/ardour/panner_shell.h b/libs/ardour/ardour/panner_shell.h
index 765acad16a..60db264b4d 100644
--- a/libs/ardour/ardour/panner_shell.h
+++ b/libs/ardour/ardour/panner_shell.h
@@ -49,7 +49,7 @@ class Pannable;
class 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);
@@ -63,19 +63,25 @@ 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 */
+ /* this function takes the process lock: */
bool select_panner_by_uri (std::string const uri);
private:
@@ -84,7 +90,11 @@ public:
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 e1f8b42914..b92d0e152a 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)