summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-06-17 14:50:28 +0200
committerRobin Gareus <robin@gareus.org>2017-06-17 15:52:00 +0200
commitc02a3413e1eb079ea7df5d14da94973c17b8e11c (patch)
tree22a4c765bb6932285b2e88355ea42bb0af56ba81 /libs
parentf80958e168e459f617a860a4aa12e6fc6766c8be (diff)
Move implementation out of header file
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/stripable.h59
-rw-r--r--libs/ardour/stripable.cc59
2 files changed, 60 insertions, 58 deletions
diff --git a/libs/ardour/ardour/stripable.h b/libs/ardour/ardour/stripable.h
index 5f71c6ae5f..3baa06c6ab 100644
--- a/libs/ardour/ardour/stripable.h
+++ b/libs/ardour/ardour/stripable.h
@@ -91,64 +91,7 @@ class LIBARDOUR_API Stripable : public SessionObject,
{
bool _mixer_order; // master is last
Sorter (bool mixer_order = false) : _mixer_order (mixer_order) {}
-
- bool operator() (boost::shared_ptr<ARDOUR::Stripable> a, boost::shared_ptr<ARDOUR::Stripable> b)
- {
- if (a->presentation_info().flags () == b->presentation_info().flags ()) {
- return a->presentation_info().order() < b->presentation_info().order();
- }
-
- int cmp_a = 0;
- int cmp_b = 0;
-
- if (a->is_auditioner ()) { cmp_a = -2; }
- if (b->is_auditioner ()) { cmp_b = -2; }
- if (a->is_monitor ()) { cmp_a = -1; }
- if (b->is_monitor ()) { cmp_b = -1; }
-
- /* ARDOUR-Editor: [Track|Bus|Master] (0) < VCA (3)
- * ARDOUR-Mixer : [Track|Bus] (0) < VCA (3) < Master (4)
- *
- * Mixbus-Editor: [Track|Bus] (0) < Mixbus (1) < VCA (3) < Master (4)
- * Mixbus-Mixer : [Track|Bus] (0) < Mixbus (1) < Master (2) < VCA (3)
- */
-
- if (a->presentation_info().flags () & ARDOUR::PresentationInfo::VCA) {
- cmp_a = 3;
- }
-#ifdef MIXBUS
- else if (a->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut) {
- cmp_a = _mixer_order ? 2 : 4;
- }
- else if ((a->presentation_info().flags () & ARDOUR::PresentationInfo::Mixbus) || a->mixbus()) {
- cmp_a = 1;
- }
-#endif
- else if (_mixer_order && (a->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut)) {
- cmp_a = 4;
- }
-
-
- if (b->presentation_info().flags () & ARDOUR::PresentationInfo::VCA) {
- cmp_b = 3;
- }
-#ifdef MIXBUS
- else if (b->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut) {
- cmp_b = _mixer_order ? 2 : 4;
- }
- else if ((b->presentation_info().flags () & ARDOUR::PresentationInfo::Mixbus) || b->mixbus()) {
- cmp_b = 1;
- }
-#endif
- else if (_mixer_order && (b->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut)) {
- cmp_b = 4;
- }
-
- if (cmp_a == cmp_b) {
- return a->presentation_info().order() < b->presentation_info().order();
- }
- return cmp_a < cmp_b;
- }
+ bool operator() (boost::shared_ptr<ARDOUR::Stripable> a, boost::shared_ptr<ARDOUR::Stripable> b);
};
/* gui's call this for their own purposes. */
diff --git a/libs/ardour/stripable.cc b/libs/ardour/stripable.cc
index 721d92789f..9f5a5743e7 100644
--- a/libs/ardour/stripable.cc
+++ b/libs/ardour/stripable.cc
@@ -123,3 +123,62 @@ Stripable::is_selected() const
}
return _session.selection().selected (shared_from_this());
}
+
+bool
+Stripable::Sorter::operator() (boost::shared_ptr<ARDOUR::Stripable> a, boost::shared_ptr<ARDOUR::Stripable> b)
+{
+ if (a->presentation_info().flags () == b->presentation_info().flags ()) {
+ return a->presentation_info().order() < b->presentation_info().order();
+ }
+
+ int cmp_a = 0;
+ int cmp_b = 0;
+
+ if (a->is_auditioner ()) { cmp_a = -2; }
+ if (b->is_auditioner ()) { cmp_b = -2; }
+ if (a->is_monitor ()) { cmp_a = -1; }
+ if (b->is_monitor ()) { cmp_b = -1; }
+
+ /* ARDOUR-Editor: [Track|Bus|Master] (0) < VCA (3)
+ * ARDOUR-Mixer : [Track|Bus] (0) < VCA (3) < Master (4)
+ *
+ * Mixbus-Editor: [Track|Bus] (0) < Mixbus (1) < VCA (3) < Master (4)
+ * Mixbus-Mixer : [Track|Bus] (0) < Mixbus (1) < Master (2) < VCA (3)
+ */
+
+ if (a->presentation_info().flags () & ARDOUR::PresentationInfo::VCA) {
+ cmp_a = 3;
+ }
+#ifdef MIXBUS
+ else if (a->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut) {
+ cmp_a = _mixer_order ? 2 : 4;
+ }
+ else if ((a->presentation_info().flags () & ARDOUR::PresentationInfo::Mixbus) || a->mixbus()) {
+ cmp_a = 1;
+ }
+#endif
+ else if (_mixer_order && (a->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut)) {
+ cmp_a = 4;
+ }
+
+
+ if (b->presentation_info().flags () & ARDOUR::PresentationInfo::VCA) {
+ cmp_b = 3;
+ }
+#ifdef MIXBUS
+ else if (b->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut) {
+ cmp_b = _mixer_order ? 2 : 4;
+ }
+ else if ((b->presentation_info().flags () & ARDOUR::PresentationInfo::Mixbus) || b->mixbus()) {
+ cmp_b = 1;
+ }
+#endif
+ else if (_mixer_order && (b->presentation_info().flags () & ARDOUR::PresentationInfo::MasterOut)) {
+ cmp_b = 4;
+ }
+
+ if (cmp_a == cmp_b) {
+ return a->presentation_info().order() < b->presentation_info().order();
+ }
+ return cmp_a < cmp_b;
+}