summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc55
1 files changed, 30 insertions, 25 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 28849e2930..115fcd750a 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -257,6 +257,7 @@ Session::Session (AudioEngine &eng,
, _step_editors (0)
, _suspend_timecode_transmission (0)
, _speakers (new Speakers)
+ , _order_hint (0)
, ignore_route_processor_changes (false)
, _midi_ports (0)
, _mmc (0)
@@ -558,10 +559,10 @@ Session::setup_ltc ()
{
XMLNode* child = 0;
- _ltc_input.reset (new IO (*this, _("LTC In"), IO::Input));
- _ltc_output.reset (new IO (*this, _("LTC Out"), IO::Output));
+ _ltc_input.reset (new IO (*this, X_("LTC In"), IO::Input));
+ _ltc_output.reset (new IO (*this, X_("LTC Out"), IO::Output));
- if (state_tree && (child = find_named_node (*state_tree->root(), "LTC-In")) != 0) {
+ if (state_tree && (child = find_named_node (*state_tree->root(), X_("LTC In"))) != 0) {
_ltc_input->set_state (*(child->children().front()), Stateful::loading_state_version);
} else {
{
@@ -571,7 +572,7 @@ Session::setup_ltc ()
reconnect_ltc_input ();
}
- if (state_tree && (child = find_named_node (*state_tree->root(), "LTC-Out")) != 0) {
+ if (state_tree && (child = find_named_node (*state_tree->root(), X_("LTC Out"))) != 0) {
_ltc_output->set_state (*(child->children().front()), Stateful::loading_state_version);
} else {
{
@@ -585,28 +586,30 @@ Session::setup_ltc ()
* IO style of NAME/TYPE-{in,out}N
*/
- _ltc_input->nth (0)->set_name (_("LTC-in"));
- _ltc_output->nth (0)->set_name (_("LTC-out"));
+ _ltc_input->nth (0)->set_name (X_("LTC-in"));
+ _ltc_output->nth (0)->set_name (X_("LTC-out"));
}
void
Session::setup_click ()
{
_clicking = false;
- _click_io.reset (new ClickIO (*this, "click"));
+ _click_io.reset (new ClickIO (*this, X_("Click")));
_click_gain.reset (new Amp (*this));
_click_gain->activate ();
if (state_tree) {
- setup_click_state (*state_tree->root());
+ setup_click_state (state_tree->root());
+ } else {
+ setup_click_state (0);
}
}
void
-Session::setup_click_state (const XMLNode& node)
+Session::setup_click_state (const XMLNode* node)
{
const XMLNode* child = 0;
-
- if ((child = find_named_node (node, "Click")) != 0) {
+
+ if (node && (child = find_named_node (*node, "Click")) != 0) {
/* existing state for Click */
int c = 0;
@@ -1697,7 +1700,7 @@ Session::resort_routes_using (boost::shared_ptr<RouteList> r)
DEBUG_TRACE (DEBUG::Graph, "Routes resorted, order follows:\n");
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
DEBUG_TRACE (DEBUG::Graph, string_compose ("\t%1 signal order %2\n",
- (*i)->name(), (*i)->order_key (MixerSort)));
+ (*i)->name(), (*i)->order_key ()));
}
#endif
@@ -1982,9 +1985,9 @@ Session::auto_connect_route (boost::shared_ptr<Route> route, ChanCount& existing
for (uint32_t i = output_start.get(*t); i < route->n_outputs().get(*t); ++i) {
string port;
- if ((*t) == DataType::MIDI || Config->get_output_auto_connect() & AutoConnectPhysical) {
+ if ((*t) == DataType::MIDI && (Config->get_output_auto_connect() & AutoConnectPhysical)) {
port = physoutputs[(out_offset.get(*t) + i) % nphysical_out];
- } else if ((*t) == DataType::AUDIO && Config->get_output_auto_connect() & AutoConnectMaster) {
+ } else if ((*t) == DataType::AUDIO && (Config->get_output_auto_connect() & AutoConnectMaster)) {
/* master bus is audio only */
if (_master_out && _master_out->n_inputs().get(*t) > 0) {
port = _master_out->input()->ports().port(*t,
@@ -2333,6 +2336,11 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
ChanCount existing_outputs;
uint32_t order = next_control_id();
+ if (_order_hint != 0) {
+ order = _order_hint;
+ _order_hint = 0;
+ }
+
count_existing_track_channels (existing_inputs, existing_outputs);
{
@@ -2394,15 +2402,13 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
ID in most situations.
*/
- if (!r->has_order_key (EditorSort)) {
+ if (!r->has_order_key ()) {
if (r->is_auditioner()) {
/* use an arbitrarily high value */
- r->set_order_key (EditorSort, UINT_MAX);
- r->set_order_key (MixerSort, UINT_MAX);
+ r->set_order_key (UINT_MAX);
} else {
DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("while adding, set %1 to order key %2\n", r->name(), order));
- r->set_order_key (EditorSort, order);
- r->set_order_key (MixerSort, order);
+ r->set_order_key (order);
order++;
}
}
@@ -3713,7 +3719,7 @@ Session::RoutePublicOrderSorter::operator() (boost::shared_ptr<Route> a, boost::
if (b->is_monitor()) {
return false;
}
- return a->order_key (MixerSort) < b->order_key (MixerSort);
+ return a->order_key () < b->order_key ();
}
bool
@@ -4950,8 +4956,7 @@ Session::notify_remote_id_change ()
}
switch (Config->get_remote_model()) {
- case MixerSort:
- case EditorSort:
+ case MixerOrdered:
Route::RemoteControlIDChange (); /* EMIT SIGNAL */
break;
default:
@@ -4960,7 +4965,7 @@ Session::notify_remote_id_change ()
}
void
-Session::sync_order_keys (RouteSortOrderKey sort_key_changed)
+Session::sync_order_keys ()
{
if (deletion_in_progress()) {
return;
@@ -4972,9 +4977,9 @@ Session::sync_order_keys (RouteSortOrderKey sort_key_changed)
opportunity to keep them in sync if they wish to.
*/
- DEBUG_TRACE (DEBUG::OrderKeys, string_compose ("Sync Order Keys, based on %1\n", enum_2_string (sort_key_changed)));
+ DEBUG_TRACE (DEBUG::OrderKeys, "Sync Order Keys.\n");
- Route::SyncOrderKeys (sort_key_changed); /* EMIT SIGNAL */
+ Route::SyncOrderKeys (); /* EMIT SIGNAL */
DEBUG_TRACE (DEBUG::OrderKeys, "\tsync done\n");
}