bool order_set() const { return _flags & OrderSet; }
+ int selection_cnt() const { return _selection_cnt; }
+
bool hidden() const { return _flags & Hidden; }
bool selected() const { return _flags & Selected; }
bool special() const { return _flags & (MasterOut|MonitorOut|Auditioner); }
order_t _order;
Flag _flags;
color_t _color;
+ int _selection_cnt;
static PBD::PropertyChange _pending_static_changes;
static Glib::Threads::Mutex static_signal_lock;
static int _change_signal_suspended;
static void send_static_change (const PBD::PropertyChange&);
+
+ static int selection_counter;
};
}
Glib::Threads::Mutex PresentationInfo::static_signal_lock;
int PresentationInfo::_change_signal_suspended = 0;
PBD::PropertyChange PresentationInfo::_pending_static_changes;
+int PresentationInfo::selection_counter = 0;
namespace ARDOUR {
namespace Properties {
if (yn != selected()) {
if (yn) {
_flags = Flag (_flags | Selected);
+ _selection_cnt = g_atomic_int_add (&selection_counter, 1);
} else {
_flags = Flag (_flags & ~Selected);
+ _selection_cnt = 0;
}
send_change (PropertyChange (Properties::selected));
send_static_change (PropertyChange (Properties::selected));