};
void notify_presentation_info_change ();
+ void clear_stripable_selection ();
+ void toggle_stripable_selection (boost::shared_ptr<Stripable>);
+ void add_stripable_selection (boost::shared_ptr<Stripable>);
+ void set_stripable_selection (boost::shared_ptr<Stripable>);
template<class T> void foreach_route (T *obj, void (T::*func)(Route&), bool sort = true);
template<class T> void foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>), bool sort = true);
}
pthread_mutex_unlock (&_auto_connect_mutex);
}
+
+void
+Session::clear_stripable_selection ()
+{
+ StripableList sl;
+ get_stripables (sl);
+
+ for (StripableList::iterator si = sl.begin(); si != sl.end(); ++si) {
+ (*si)->presentation_info().set_selected (false);
+ }
+
+}
+
+void
+Session::toggle_stripable_selection (boost::shared_ptr<Stripable> s)
+{
+ s->presentation_info().set_selected (!s->presentation_info().selected());
+}
+
+void
+Session::add_stripable_selection (boost::shared_ptr<Stripable> s)
+{
+ if (!s->presentation_info().selected ()) {
+ s->presentation_info().set_selected (true);
+ }
+}
+
+void
+Session::set_stripable_selection (boost::shared_ptr<Stripable> s)
+{
+ StripableList sl;
+ bool change = false;
+
+ get_stripables (sl);
+
+ for (StripableList::iterator si = sl.begin(); si != sl.end(); ++si) {
+ if ((*si)->presentation_info().selected()) {
+ change = true;
+ }
+
+ (*si)->presentation_info().set_selected (false);
+ }
+
+ if (!s->presentation_info().selected()) {
+ change = true;
+ s->presentation_info().set_selected (true);
+ }
+
+ if (change) {
+ // PresentationInfo::SelectionChange (); /* EMIT SIGNAL */
+ }
+}