#include "ardour/types.h"
#include "ardour/mute_master.h"
#include "ardour/route_group_member.h"
+#include "ardour/graphnode.h"
namespace ARDOUR {
class InternalReturn;
class MonitorProcessor;
-class Route : public SessionObject, public AutomatableControls, public RouteGroupMember
+class Route : public SessionObject, public AutomatableControls, public RouteGroupMember, public GraphNode
{
public:
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;
- bool self_muted () const;
- bool muted_by_others () const;
-
- bool path_muted_by_others() const { return _path_muted_by_others > 0; }
- void mod_path_muted_by_others (int delta);
-
void set_mute (bool yn, void* src);
- void mod_muted_by_others (int delta);
/* controls use set_solo() to modify this route's solo state
*/
protected:
friend class Session;
- void set_graph_level (int32_t);
- int32_t graph_level() const { return _graph_level; }
- void check_physical_connections ();
- // this functions may ONLY be called during a route resort
- bool physically_connected () const { return _physically_connected; }
-
void catch_up_on_solo_mute_override ();
void mod_solo_by_others_upstream (int32_t);
void mod_solo_by_others_downstream (int32_t);
boost::shared_ptr<SoloControllable> _solo_control;
boost::shared_ptr<MuteControllable> _mute_control;
boost::shared_ptr<MuteMaster> _mute_master;
- MuteMaster::MutePoint _mute_points;
- volatile uint32_t _path_muted_by_others;
std::string _comment;
bool _have_internal_generator;
- bool _physically_connected; // valid ONLY during a route resort
- int32_t _graph_level;
bool _solo_safe;
DataType _default_type;
FedBy _fed_by;
void passthru_silence (sframes_t start_frame, sframes_t end_frame,
nframes_t nframes, int declick);
- void silence (nframes_t nframes);
+ void silence (nframes_t);
+ void silence_unlocked (nframes_t);
ChanCount processor_max_streams;
uint32_t _remote_control_id;
void set_self_solo (bool yn);
void set_mute_master_solo ();
+
+ void set_processor_positions ();
};
} // namespace ARDOUR