summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-05-17 23:28:13 +0000
committerCarl Hetherington <carl@carlh.net>2010-05-17 23:28:13 +0000
commitf35dc8b35da3dc11cbb1076193657f8335722041 (patch)
treec816fe23d59070e08821dc5e577b6e750af07bb1 /libs/ardour/ardour
parent6d9c1201cc6c9adf866fb7769037c79decf2e5b0 (diff)
Remove muting behaviour from the Amp processor. Fix some small
bugs with delivery muting. The upshot being that muting now definitely happens in a channel's deliveries, and not really in the channel strip at all. When the channel is muted, those deliveries described by the MuteMaster settings are muted. Should fix #3141. git-svn-id: svn://localhost/ardour2/branches/3.0@7115 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/amp.h4
-rw-r--r--libs/ardour/ardour/mute_master.h9
-rw-r--r--libs/ardour/ardour/processor.h5
-rw-r--r--libs/ardour/ardour/route.h5
4 files changed, 13 insertions, 10 deletions
diff --git a/libs/ardour/ardour/amp.h b/libs/ardour/ardour/amp.h
index 4db2292653..c1f6172de1 100644
--- a/libs/ardour/ardour/amp.h
+++ b/libs/ardour/ardour/amp.h
@@ -28,14 +28,13 @@ namespace ARDOUR {
class BufferSet;
class IO;
-class MuteMaster;
/** Applies a declick operation to all audio inputs, passing the same number of
* audio outputs, and passing through any other types unchanged.
*/
class Amp : public Processor {
public:
- Amp(Session& s, boost::shared_ptr<MuteMaster> m);
+ Amp(Session& s);
std::string display_name() const;
@@ -101,7 +100,6 @@ private:
float _current_gain;
boost::shared_ptr<GainControl> _gain_control;
- boost::shared_ptr<MuteMaster> _mute_master;
};
diff --git a/libs/ardour/ardour/mute_master.h b/libs/ardour/ardour/mute_master.h
index 2a90a0284e..c219ce3ec3 100644
--- a/libs/ardour/ardour/mute_master.h
+++ b/libs/ardour/ardour/mute_master.h
@@ -34,11 +34,12 @@ class Session;
class MuteMaster : public SessionHandleRef, public PBD::Stateful
{
public:
+ /** deliveries to mute when the channel is "muted" */
enum MutePoint {
- PreFader = 0x1,
- PostFader = 0x2,
- Listen = 0x4,
- Main = 0x8
+ PreFader = 0x1, ///< mute all pre-fader sends
+ PostFader = 0x2, ///< mute all post-fader sends
+ Listen = 0x4, ///< mute listen out
+ Main = 0x8 ///< mute main out
};
static const MutePoint AllPoints;
diff --git a/libs/ardour/ardour/processor.h b/libs/ardour/ardour/processor.h
index 4e13338ac1..ea468f92be 100644
--- a/libs/ardour/ardour/processor.h
+++ b/libs/ardour/ardour/processor.h
@@ -97,6 +97,8 @@ class Processor : public SessionObject, public AutomatableControls, public Laten
void *get_gui () const { return _gui; }
void set_gui (void *p) { _gui = p; }
+ void set_pre_fader (bool);
+
PBD::Signal0<void> ActiveChanged;
PBD::Signal2<void,ChanCount,ChanCount> ConfigurationChanged;
@@ -108,7 +110,8 @@ protected:
ChanCount _configured_input;
ChanCount _configured_output;
void* _gui; /* generic, we don't know or care what this is */
- bool _display_to_user;
+ bool _display_to_user;
+ bool _pre_fader;
private:
int set_state_2X (const XMLNode&, int version);
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index e371059a74..44ee04781a 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -123,7 +123,7 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
void inc_gain (gain_t delta, void *src);
void set_mute_points (MuteMaster::MutePoint);
- MuteMaster::MutePoint mute_points() const { return _mute_points; }
+ MuteMaster::MutePoint mute_points () const;
bool muted () const;
void set_mute (bool yn, void* src);
@@ -423,7 +423,6 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
boost::shared_ptr<SoloControllable> _solo_control;
boost::shared_ptr<MuteControllable> _mute_control;
boost::shared_ptr<MuteMaster> _mute_master;
- MuteMaster::MutePoint _mute_points;
std::string _comment;
bool _have_internal_generator;
@@ -477,6 +476,8 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
void set_self_solo (bool yn);
void set_mute_master_solo ();
+
+ void set_processor_positions ();
};
} // namespace ARDOUR