summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/panner_shell.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-01-14 10:56:17 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-01-14 10:56:17 -0500
commitcf806123ca5faaef483f898daba3f7bd38ec62eb (patch)
treef11f2f9ff64ea3b3682c81b8dd893ba0e9476445 /libs/ardour/ardour/panner_shell.h
parentcfc9a1f22ea38d4dd6c619d6cec25fe29b1c2f48 (diff)
parentd9296b71237d9d3058b0796eda25258fadd45ad9 (diff)
merge (with conflict fixes) with master (even against rgareus' recommendation)
Diffstat (limited to 'libs/ardour/ardour/panner_shell.h')
-rw-r--r--libs/ardour/ardour/panner_shell.h19
1 files changed, 16 insertions, 3 deletions
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;