mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-11 07:56:27 +01:00
consolidate SignalOrderRouteSorter
This commit is contained in:
parent
a17616f1da
commit
18cedeec63
3 changed files with 48 additions and 36 deletions
|
|
@ -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))
|
||||
|
|
@ -452,7 +435,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);
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
#include "ardour/plugin_manager.h"
|
||||
#include "ardour/profile.h"
|
||||
#include "ardour/route_group.h"
|
||||
#include "ardour/route_sorters.h"
|
||||
#include "ardour/session.h"
|
||||
|
||||
#include "keyboard.h"
|
||||
|
|
@ -1103,28 +1104,12 @@ Mixer_UI::redisplay_track_list ()
|
|||
//
|
||||
//}
|
||||
|
||||
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…
Add table
Add a link
Reference in a new issue