consolidate SignalOrderRouteSorter
This commit is contained in:
parent
a3c378cf62
commit
b90d7a01fa
|
@ -40,6 +40,7 @@
|
|||
|
||||
#include "ardour/audio_track.h"
|
||||
#include "ardour/midi_track.h"
|
||||
#include "ardour/route_sorters.h"
|
||||
|
||||
#include "meterbridge.h"
|
||||
|
||||
|
@ -79,24 +80,6 @@ Meterbridge::instance ()
|
|||
return _instance;
|
||||
}
|
||||
|
||||
/* copy from gtk2_ardour/mixer_ui.cc -- TODO consolidate
|
||||
* used by Meterbridge::set_session() below
|
||||
*/
|
||||
struct SignalOrderRouteSorter {
|
||||
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
|
||||
if (a->is_master() || a->is_monitor()) {
|
||||
/* "a" is a special route (master, monitor, etc), and comes
|
||||
* last in the mixer ordering
|
||||
*/
|
||||
return false;
|
||||
} else if (b->is_master() || b->is_monitor()) {
|
||||
/* everything comes before b */
|
||||
return true;
|
||||
}
|
||||
return a->order_key () < b->order_key ();
|
||||
}
|
||||
};
|
||||
|
||||
Meterbridge::Meterbridge ()
|
||||
: Window (Gtk::WINDOW_TOPLEVEL)
|
||||
, VisibilityTracker (*((Gtk::Window*) this))
|
||||
|
@ -451,7 +434,7 @@ Meterbridge::set_session (Session* s)
|
|||
_show_master = _session->config.get_show_master_on_meterbridge();
|
||||
_show_midi = _session->config.get_show_midi_on_meterbridge();
|
||||
|
||||
SignalOrderRouteSorter sorter;
|
||||
ARDOUR::SignalOrderRouteSorter sorter;
|
||||
boost::shared_ptr<RouteList> routes = _session->get_routes();
|
||||
|
||||
RouteList copy(*routes);
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "ardour/midi_track.h"
|
||||
#include "ardour/plugin_manager.h"
|
||||
#include "ardour/route_group.h"
|
||||
#include "ardour/route_sorters.h"
|
||||
#include "ardour/session.h"
|
||||
|
||||
#include "keyboard.h"
|
||||
|
@ -1100,28 +1101,12 @@ Mixer_UI::strip_width_changed ()
|
|||
|
||||
}
|
||||
|
||||
struct SignalOrderRouteSorter {
|
||||
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
|
||||
if (a->is_master() || a->is_monitor()) {
|
||||
/* "a" is a special route (master, monitor, etc), and comes
|
||||
* last in the mixer ordering
|
||||
*/
|
||||
return false;
|
||||
} else if (b->is_master() || b->is_monitor()) {
|
||||
/* everything comes before b */
|
||||
return true;
|
||||
}
|
||||
return a->order_key () < b->order_key ();
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
void
|
||||
Mixer_UI::initial_track_display ()
|
||||
{
|
||||
boost::shared_ptr<RouteList> routes = _session->get_routes();
|
||||
RouteList copy (*routes);
|
||||
SignalOrderRouteSorter sorter;
|
||||
ARDOUR::SignalOrderRouteSorter sorter;
|
||||
|
||||
copy.sort (sorter);
|
||||
|
||||
|
|
44
libs/ardour/ardour/route_sorters.h
Normal file
44
libs/ardour/ardour/route_sorters.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
Copyright (C) 2000-2014 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __libardour_route_sorters_h__
|
||||
#define __libardour_route_sorters_h__
|
||||
|
||||
#include "ardour/route.h"
|
||||
|
||||
namespace ARDOUR {
|
||||
|
||||
struct SignalOrderRouteSorter {
|
||||
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
|
||||
if (a->is_master() || a->is_monitor()) {
|
||||
/* "a" is a special route (master, monitor, etc), and comes
|
||||
* last in the mixer ordering
|
||||
*/
|
||||
return false;
|
||||
} else if (b->is_master() || b->is_monitor()) {
|
||||
/* everything comes before b */
|
||||
return true;
|
||||
}
|
||||
return a->order_key () < b->order_key ();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif /* __libardour_route_sorters_h__ */
|
Loading…
Reference in New Issue
Block a user