summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/amp.h2
-rw-r--r--libs/ardour/ardour/automation_control.h8
-rw-r--r--libs/ardour/ardour/midi_track.h2
-rw-r--r--libs/ardour/ardour/monitor_processor.h2
-rw-r--r--libs/ardour/ardour/pan_controllable.h6
-rw-r--r--libs/ardour/ardour/plugin_insert.h5
-rw-r--r--libs/ardour/ardour/proxy_controllable.h6
-rw-r--r--libs/ardour/ardour/route.h59
-rw-r--r--libs/ardour/ardour/track.h2
9 files changed, 50 insertions, 42 deletions
diff --git a/libs/ardour/ardour/amp.h b/libs/ardour/ardour/amp.h
index e8445c4853..c92edcc5fc 100644
--- a/libs/ardour/ardour/amp.h
+++ b/libs/ardour/ardour/amp.h
@@ -92,7 +92,7 @@ public:
range_db = accurate_coefficient_to_dB (_desc.upper) - lower_db;
}
- void set_value (double val);
+ void set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
double internal_to_interface (double) const;
diff --git a/libs/ardour/ardour/automation_control.h b/libs/ardour/ardour/automation_control.h
index b26d781e2f..0d065686e2 100644
--- a/libs/ardour/ardour/automation_control.h
+++ b/libs/ardour/ardour/automation_control.h
@@ -85,9 +85,12 @@ public:
* Derived classes MUST call ::writable() to verify
* that writing to the parameter is legal at that time.
*/
- void set_value (double);
double get_value () const;
-
+ /* inherited from PBD::Controllable.
+ * Derived classes MUST call ::writable() to verify
+ * that writing to the parameter is legal at that time.
+ */
+ void set_value (double value, PBD::Controllable::GroupControlDisposition group_override);
/* automation related value setting */
virtual bool writable () const;
/* Call to ::set_value() with no test for writable() because
@@ -110,7 +113,6 @@ public:
void commit_transaction (bool did_write);
protected:
-
ARDOUR::Session& _session;
const ParameterDescriptor _desc;
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index 80bb743b10..ba418082f8 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -89,7 +89,7 @@ public:
, _route (route)
{}
- void set_value (double val);
+ void set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
bool writable() const { return true; }
diff --git a/libs/ardour/ardour/monitor_processor.h b/libs/ardour/ardour/monitor_processor.h
index c7d73dca00..ffee1fbbd2 100644
--- a/libs/ardour/ardour/monitor_processor.h
+++ b/libs/ardour/ardour/monitor_processor.h
@@ -54,7 +54,7 @@ public:
/* Controllable API */
- void set_value (double v) {
+ void set_value (double v, PBD::Controllable::GroupControlDisposition group_override) {
T newval = (T) v;
if (newval != _value) {
_value = std::max (_lower, std::min (_upper, newval));
diff --git a/libs/ardour/ardour/pan_controllable.h b/libs/ardour/ardour/pan_controllable.h
index ff00d8119f..77acbee04f 100644
--- a/libs/ardour/ardour/pan_controllable.h
+++ b/libs/ardour/ardour/pan_controllable.h
@@ -36,7 +36,7 @@ class Pannable;
class LIBARDOUR_API PanControllable : public AutomationControl
{
-public:
+ public:
PanControllable (Session& s, std::string name, Pannable* o, Evoral::Parameter param)
: AutomationControl (s,
param,
@@ -47,10 +47,10 @@ public:
{}
double lower () const;
- void set_value (double);
+ void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
-private:
+ private:
Pannable* owner;
};
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index 0873825c02..6b434bef7f 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -95,7 +95,7 @@ class LIBARDOUR_API PluginInsert : public Processor
const ParameterDescriptor& desc,
boost::shared_ptr<AutomationList> list=boost::shared_ptr<AutomationList>());
- void set_value (double val);
+ void set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
double get_value (void) const;
void catch_up_with_external_value (double val);
@@ -113,8 +113,7 @@ class LIBARDOUR_API PluginInsert : public Processor
const ParameterDescriptor& desc,
boost::shared_ptr<AutomationList> list=boost::shared_ptr<AutomationList>());
- void set_value (const Variant& val);
- void set_value (double val);
+ void set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
double get_value (void) const;
XMLNode& get_state();
diff --git a/libs/ardour/ardour/proxy_controllable.h b/libs/ardour/ardour/proxy_controllable.h
index b2f230ec87..c60f5f1b74 100644
--- a/libs/ardour/ardour/proxy_controllable.h
+++ b/libs/ardour/ardour/proxy_controllable.h
@@ -31,7 +31,7 @@ namespace ARDOUR {
*/
class LIBARDOUR_API ProxyControllable : public PBD::Controllable {
-public:
+ public:
ProxyControllable (const std::string& name, PBD::Controllable::Flag flags,
boost::function1<bool,double> setter,
boost::function0<double> getter)
@@ -40,7 +40,7 @@ public:
, _getter (getter)
{}
- void set_value (double v) { if (_setter (v)) { Changed(); /* EMIT SIGNAL */ } }
+ void set_value (double v, PBD::Controllable::GroupControlDisposition /*group_override*/) { if (_setter (v)) { Changed(); /* EMIT SIGNAL */ } }
double get_value () const { return _getter (); }
double internal_to_user (double i) const { return accurate_coefficient_to_dB (i);}
@@ -51,7 +51,7 @@ public:
return std::string(theBuf);
}
-private:
+ private:
boost::function1<bool,double> _setter;
boost::function0<double> _getter;
};
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index 0ef063b29c..2086f32119 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -383,23 +383,44 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
/* Controls (not all directly owned by the Route */
+ class RouteAutomationControl : public AutomationControl {
+ public:
+ RouteAutomationControl (const std::string& name,
+ AutomationType atype,
+ boost::shared_ptr<AutomationList> alist,
+ boost::shared_ptr<Route> route);
+
+ void set_value (double val, PBD::Controllable::GroupControlDisposition group_override) {
+ boost::shared_ptr<Route> r = _route.lock();
+ if (r) {
+ r->set_control (*this, val, group_override);
+ }
+ }
+
+ protected:
+ friend class Route;
+
+ void route_set_value (double val) {
+ AutomationControl::set_value (val, Controllable::NoGroup);
+ }
+
+ boost::weak_ptr<Route> _route;
+ };
+
boost::shared_ptr<AutomationControl> get_control (const Evoral::Parameter& param);
- class SoloControllable : public AutomationControl {
+ class SoloControllable : public RouteAutomationControl {
public:
SoloControllable (std::string name, boost::shared_ptr<Route>);
- void set_value (double);
+ void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
double get_value () const;
-
- private:
- boost::weak_ptr<Route> _route;
};
- struct MuteControllable : public AutomationControl {
+ struct MuteControllable : public RouteAutomationControl {
public:
MuteControllable (std::string name, boost::shared_ptr<Route>);
- void set_value (double);
+ void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
void set_value_unchecked (double);
double get_value () const;
@@ -410,27 +431,18 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
boost::weak_ptr<Route> _route;
};
- class LIBARDOUR_API PhaseControllable : public AutomationControl {
+ class LIBARDOUR_API PhaseControllable : public RouteAutomationControl {
public:
PhaseControllable (std::string name, boost::shared_ptr<Route>);
- void set_value (double);
+ void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
void set_channel (uint32_t);
double get_value () const;
uint32_t channel() const;
-
private:
- boost::weak_ptr<Route> _route;
uint32_t _current_phase;
};
- class LIBARDOUR_API GroupGainControllable : public AutomationControl {
- public:
- GroupGainControllable (std::string name, boost::shared_ptr<Route>);
- void set_value (double);
- double get_value () const;
- private:
- boost::weak_ptr<Route> _route;
- };
+ void set_control (RouteAutomationControl&, double val, PBD::Controllable::GroupControlDisposition group_override);
boost::shared_ptr<SoloControllable> solo_control() const {
return _solo_control;
@@ -448,10 +460,6 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
return _phase_control;
}
- boost::shared_ptr<GroupGainControllable> group_gain_control() const {
- return _group_gain_control;
- }
-
/* Route doesn't own these items, but sub-objects that it does own have them
and to make UI code a bit simpler, we provide direct access to them
here.
@@ -544,7 +552,7 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
bool has_external_redirects() const;
/* can only be executed by a route for which is_monitor() is true
- (i.e. the monitor out)
+ (i.e. the monitor out)
*/
void monitor_run (framepos_t start_frame, framepos_t end_frame,
pframes_t nframes, int declick);
@@ -635,7 +643,6 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
boost::shared_ptr<MuteControllable> _mute_control;
boost::shared_ptr<MuteMaster> _mute_master;
boost::shared_ptr<PhaseControllable> _phase_control;
- boost::shared_ptr<GroupGainControllable> _group_gain_control;
virtual void act_on_mute () {}
@@ -679,7 +686,7 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
int set_state_2X (const XMLNode&, int);
void set_processor_state_2X (XMLNodeList const &, int);
- uint32_t _order_key;
+ uint32_t _order_key;
bool _has_order_key;
uint32_t _remote_control_id;
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index fa7b1f30bb..5bf887f517 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -206,7 +206,7 @@ class LIBARDOUR_API Track : public Route, public PublicDiskstream
struct RecEnableControl : public AutomationControl {
RecEnableControl (boost::shared_ptr<Track> t);
- void set_value (double);
+ void set_value (double, PBD::Controllable::GroupControlDisposition);
void set_value_unchecked (double);
double get_value (void) const;