19 #include <boost/bind.hpp>
38 queue_event (get_rt_event (rl, mc, after, group_override, &Session::rt_set_monitoring));
44 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
45 if (!(*i)->is_auditioner()) {
59 queue_event (get_rt_event (rl, yn, after, group_override, &Session::rt_set_solo));
65 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
66 if (!(*i)->is_auditioner()) {
67 (*i)->set_solo (yn,
this);
80 queue_event (get_rt_event (rl, upstream, after,
false, &Session::rt_cancel_solo_after_disconnect));
86 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
87 if (!(*i)->is_auditioner()) {
88 (*i)->cancel_solo_after_disconnect (upstream);
105 queue_event (get_rt_event (rl, yn, after,
false, &Session::rt_set_just_one_solo));
114 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
115 if (!(*i)->is_auditioner() && r != *i) {
116 (*i)->set_solo (!yn, (*i)->route_group());
128 queue_event (get_rt_event (rl, yn, after, group_override, &Session::rt_set_listen));
134 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
135 if (!(*i)->is_auditioner()) {
136 (*i)->set_listen (yn,
this);
147 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
152 queue_event (get_rt_event (rl, yn, after, group_override, &Session::rt_set_mute));
158 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
159 if (!(*i)->is_monitor() && !(*i)->is_auditioner()) {
160 (*i)->set_mute (yn,
this);
170 queue_event (get_rt_event (rl, yn, after, group_override, &Session::rt_set_solo_isolated));
176 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
177 if (!(*i)->is_master() && !(*i)->is_monitor() && !(*i)->is_auditioner()) {
178 (*i)->set_solo_isolated (yn,
this);
199 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
200 if ((*i)->is_auditioner()) {
206 if ((t = boost::dynamic_pointer_cast<Track>(*i)) != 0) {
211 queue_event (get_rt_event (rl, yn, after, group_override, &Session::rt_set_record_enabled));
217 for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
218 if ((*i)->is_auditioner()) {
224 if ((t = boost::dynamic_pointer_cast<Track>(*i)) != 0) {
240 warning <<
string_compose (
"programming error: %1",
X_(
"Session RT event queued from thread without a UI - cleanup in RT thread!")) <<
endmsg;
void set_record_enabled(bool yn, void *src)
PBD::EventLoop * event_loop
boost::function< void(SessionEvent *)> RTeventCallback
shared_ptr< T > dynamic_pointer_cast(shared_ptr< U > const &r)
virtual void set_monitoring(MonitorChoice)
boost::function< void(void)> rt_slot
LIBPBD_API Transmitter warning
RTeventCallback rt_return
std::ostream & endmsg(std::ostream &ostr)
void set_solo(bool yn, void *src)
void prep_record_enabled(bool yn, void *src)
void set_superficial_value(bool muted)
RouteGroup * route_group() const
virtual void call_slot(InvalidationRecord *, const boost::function< void()> &)=0
#define MISSING_INVALIDATOR
std::list< boost::shared_ptr< Route > > RouteList
std::string string_compose(const std::string &fmt, const T1 &o1)